RegExp

RegExp

创建正则表达式的方式:

     如果正则表达式不需要动态生成时,创建固定正则表达式对象:

    var reg=/正则表达式/g;

                   正则表达式中所有/都要换为/

     如果正则表达式由变量或字符串动态生成时,创建可变正则表达式对象

    var reg=new RegExp("正则表达式","后缀");

注意:正则中需要转义的字符:* . ? + $ ^ [ ] ( ) { } | /,加上字符串形式(js)中所有都要转义一次写成\,所以:"d{6}"-->’\d\{6}’。{号和正则冲突,加,而和js中的转义字符冲突,再加一个

test()返回一个布尔值,用于表明在所搜索的字符串中是否存在正则表达式模式所对应的匹配。

lastIndex:用于规定下次匹配的开始位置。当RegExp.exec() 和 RegExp.test() 找到匹配内容后,lastIndex 属性指向匹配文本之后的第一个字符的位置,作为下次检索的起始点。

在全局匹配模式下,该值在每次调用exec()后都会增加,而在非全局模式下则始终保持不变。

当方法 exec() 或 test() 找不到可以匹配的文本时,会自动把 lastIndex 属性重置为 0。

如果在成功地匹配了某个字符串之后就开始检索另一个新的字符串,需要手动地把这个属性设置为 0,否则结果错误。

var regExp = /2/g;

regExp.test('123');//true

regExp.test('213');//未重置RegExp对象的lastIndex属性,从1开始匹配,所以返回false。

原文地址:https://www.cnblogs.com/kevin2chen/p/6898747.html