飞道的博客

JavaScript学习(六十七)—正则表达式学习总结

279人阅读  评论(0)

JavaScript学习(六十七)—正则表达式知识点总结

学习内容

一、什么是正则表达式

二、如何创建正则表达式

三、正则表达式的常用方法

四、正则表达式的匹配模式

五、 字符串对象中和正则表达式结合使用的方法

六、正则表达式常用的修饰符

一、什么是正则表达式

  • 正则表达式也称为规则表达式,就是普通字符和特殊字符构成的一个表达式
  • 作用就是用来检验字符串是否符合格式要求,或者在字符串中查找是否有符合格式要求的字符串。

二、如何创建正则表达式

  • 利用构造方法创建:var 正则表达式的名称=new RegExp('正则表达式内容','修饰符');
  • 利用字面量形式创建:var 正则表达式的名称=/ 正则表达式内容/修饰符;

三、正则表达式的常用方法—test方法

  • 作用:验证字符串是否符合正则表达式的格式要求

  • 格式:正则表达式.test(字符串)

  • 返回值:true(符合要求)、false(不符合)


四、正则表达式的构成

(一)普通字符

  • 如字母、数字0-9、a-z、A-Z、_

(二)、特殊字符(元字符)

(1)、定位符

^:表示以某个字符开头,如/^a/表示字符串以字母a开头

$:表示以某个字符结尾,如/$a/表示字符串以a结尾




(2)、表示数量的限定符

  • *:表示它前面的字符的个数为0到无穷多个,如/a*/表示a的个数最少0个,最多无限个

  • +:表示他前面的字符的个数为1到无穷多个。如/a+/表示 a的个数最少1个,最多无限个

  • ?:表示他前面的字符为0到1个。如/a?/表示a的个数最少0个,最多一个

  • {n}:表示他前面的字符只能是n个.如/a{3}/表示字符串中包含3个字符a

  • {n, }:表示他前面的字符为n到无穷多个,如/a{3, }/表示字符串 a的个数大于等于3个

  • {n,m}:表示他前面的字符的个数为n-m个.如a{1,5}表示a的个数为1-5个

(3)、转义字符

转义字符:所谓转义字符就是指在普通字符的前面加反斜线,使得他具有特定的功能和含义,也可以在具有特定的功能和含义的字符前面加反斜线,将他转换为普通字符 如:\d表示任意一个数字/\表示将正则表达式中的斜线转换为普通的斜线

  • \d:表示任意一个数字

  • \D:表示任意一个非数字

  • \w:表示任意一个字母、数字、下划线

  • \W:任意一个非字母数字下划线

  • \s:表示任意一个空白符,比如制表符、空格

  • \S:任意一个非空白符

(4)、备选字符集

  • [值1 值2 值3 值4]:中括号里面的值表示字符串中可以匹配到的任意一个值

  • [值1-值n]:表示值1到值n间的任意一个值为备选选项

  • [^值1 值2 值3]:表示字符串中不可以包含中括号里面的任意一个值

  • [\u4e00-\9fa5]:表示任意的一个汉字

四、正则表达式的匹配模式
1)贪婪模式:指正则表达式在对字符串进行匹配时尽可能多的匹配字符,默认就是贪婪模式

2)懒惰模式:指正则表达式在对字符串进行匹配时尽可能少的匹配字符,默认是贪婪模式,如果要将贪婪模式转化为懒惰模式,需要在数量修饰符后面加问号


(五)、字符串对象中和正则表达式结合使用的方法

(一)、split方法

  • 作用:将字符串转化为数组
  • 格式:字符串名称.splite('分隔符');

(二)、match方法

  • 作用:从字符串中查找到符合条件的
  • 格式:字符串.match(子串);
  • 返回值:由子串形成的数组,默认只返回找到符合条件的第一个子串,如果要找到符合条件的所有的子串需要使用正则表达式作为参数



(三)、repalce方法

  • 作用:替换字符串中指定的子串

  • 格式:字符串.repalce.('要被替换的子串','新的子串');

  • 返回值:默认情况下,只替换符合条件的第一个子串,如果要将所有的子串替换掉,则需要使用正则表达式 且这个正则表达式需要使用修饰符g,如果要替换的子串不存在则返回原串

(四)、search方法

  • 作用:在字符串从左向右查找子串位置,如果存在则返回该子串对应的下标,否则返回-1,功能类似于indexOf方法
  • 格式:字符串.search('子串');
  • 注意:该方法可以和正则表达式结合使用,但是就算正则表达式中有修饰符g,在匹配的时候也只能返回查找到的第一个子串

六、正则表达式常用的修饰符

  • i:表示忽略大小写
  • g:表示全局匹配
  • ig/gi:表示既忽略大小写也全局匹配



转载:https://blog.csdn.net/m0_46374969/article/details/116567302
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场