基础
1 .str.match(reg)-- 返回匹配到的数组 str.replace()
2 .reg.test(str)--返回一个布尔值
3 .全局修饰符:i,g,m(多行匹配元素)u,y--还有许多其他的修饰符js不支持
4 .RegExp()构造函数可以动态创建新的正则。(注意里面的转义)--就算是使用字符串模板也还是需要调用构造函数来加工的,因为字符串模板得到的最后是字符串。
正则的几种形式
1 .普通字符:只能匹配自身的字符串
2 .特殊字符串:在regexp中必须使用转义字符 {。
3 .想要直接匹配的字母和数字,不需要使用反斜杠进行转义,当在正则中使用可以理解的反斜杠字符时,必须使用反斜杠转义。
简单字符
1 ./a[bcd]/ ab,ac,ad三种选择
2 ./a[^b]/ 除了ab的都算
3 ./[0-9a-zA-Z]/:范围匹配,仅指定起止符,中间使用-连接。遵循字符串编码原则,必须是按照字符编码排列时才能用这个方法。
4 ./ab[c-g][1-7]/ ab(c-g)(1-7)匹配四个字符。
预定义字符
1 .\w [a-zA-Z0-9]:单字符
2 .\W\ [^]:非单字符
3 .\s :空白符 str.replace()
4 .\S :非空白符
5 .\d:[0-9]:任意数字
6 .\D:[^0-9]:非数字
重复类数量词:允许用户定义字符重复匹配次数
1 .{n} 匹配前一项n次
2 . {n,m} 匹配前一个最少n,最多m次
3 . {n,} 匹配前一个最少n次,
4 .?={0,1}
5 .*={0,}
6 .+={1,}
高级匹配模式
贪婪模式
1 .在符合匹配条件的基础上尽可能的多占字符,而不是随意占用,越是排在左侧的重复匹配类匹配优先等级越高(可能和你想的不一样)
惰性匹配
1 .与贪婪匹配相反,体现了匹配的最小化原则,先查看字符串中的第一个值,如果第一个匹配,那么就立刻返回,否则就读入下一个字符串。实现效果 --只需要在重复类后面加上一个?。这个?必须在重复类后面。
支持匹配
1 .只尝试匹配整个字符串。如果整个字符串不能匹配,则自动放弃。在重复类后面加+号。
正则分组
1 .对于正则来说,一个小括号表示一个独立作用域,其匹配的内容将被独立存储,以数组的形式进行访问。
2 .分组后面也是可以使用任意的重复类量词。
3 .好处
1.当一个正则表达式成功的与目标字符串相匹配时,也可以从目标字符串中抽出与小括号中的子模式相匹配的部分。
2.$1,$2,对于正则表达式中的第一个括号,第二个括号的引用。
3.replace中常常用到,是RegExp对象的标识符。
正则的边界,确定字符串中的具体方位。
1 .^一行的开头
2 .$一行的末尾
3 .\b 匹配一个词语的边界 [\b]匹配的是退格符
4 .\B 匹配非词语标记
regexp对象的实例属性
1 .lastIndex:下一次匹配的位置,这个例外,可以改
2 .source:返回正则匹配的源字符串文本。