RegExp对象
使用RegExp对象来表示正则表达式,除了RegExp()构造函数之外,RegExp对象还支持三个方法和一些属性。接下来的对RegExp模式匹配方法和属性展开讲述。
RegExp()构造函数支持2个参数第一参数为正则表达式的主体部分,第二个参数是修饰符部分。
RegExp()的第一个参数中\转义字符必须使用\来对\转义。
var zipcode =new RegExp("\\d{5}","g");
RegExp通常通过动态创建正则表达式的时候非常有用,例如,如果带检索的字符串是由用户输入的,就必须使用RegExp()构造函数。
RegExp的属性
RegExp对象包含5个属性。
source是一个只读字符串,包含正则表达式的文本。
属性global是只读的布尔值,用以说明这个正则表达式是否带有修饰符g.
属性ignoreCase只读属性,用于说明是否带修饰符i.
multiline只读的布尔值,用于说明指代是否带m修饰符
lastIndex她是一个可读可写的整数,这个属性存储在整个字符串中下一次检索的开始位置,这个属性会被exec()和test()方法用到
RegExp中的方法
exec()方法和String中的match()方法相类似。
exec()方法是一个字符串参数,而String方法的参数是一个RegExp对象,与match()方法一样都返回的是一个元素包含的是与正则表达式相匹配的字符串,于下的是与圆括号内的子表达式相匹配的字符串。属性index包含了发生匹配的位置。属性input包含的是正在检索的字符串。
不同的是不论表达式是否具备全局修饰符g,exec()都返回的一样的数组,它每次总返回一个匹配结果,当匹配到结果后的lastIndex设置为紧挨匹配字符串的位置,当同一个正则调用第二次的时候则从lastIndex位置开始匹配。
如果没有匹配到响应结果则将lastIndex设置为0;
test()方法。
test()方法通过正则表达式调用,参数为一个字符串,如果表达式能匹配到字符串则返回结果true,如果匹配不到则返回false;
3.在使用test()和exec()方法的时候且正则对象带有修饰符g时,对多个字符串进行执行的时候,需要将lastIndex每个字符串都找出来,一遍将lastIndex自动充值为0,要么显示将lastIndex手动设置为0;