JavaScript RegExp 基础详谈
|
test 方法用于测试正则规则在指定的字符串中是否具有符合的匹配结果,如果匹配到则返回true,否则返回false。 var pattern = /a/;
console.log(pattern.test('edcba')) // => true
当test方法在全局模式下被多次执行的时候,每次执行的返回值会因为匹配结果的不同而不同,但在实际的应用中, · exec() 在非全局的匹配模式下,一旦匹配到符合规则的结果,便会停止执行。 示例: 1 var pattern = /a/g;
2 console.log(pattern.test('edcba')) // => true 第一次执行。
3 console.log(pattern.test('edcba')) // => false 第二次执行。
4 console.log(pattern.test('edcba')) // => true 第三次执行。从头到尾重新循环执行。
exec方法可以返回匹配的结果,以及结果在字符串中的索引和下一次匹配的起始位置。如果正则表达式没有匹配到结果, 1 var result = /a/.exec('abcdaefga');
2 result[0] // -> 当前匹配到的结果。
3 result.input // -> 进行匹配操作的字符串。
4 result.index // -> 当前匹配结果首字母在字符串中的索引
如果存在分组匹配的情况下: 示例: 1 var str = '2012 google';
2 var pattern = /(d{4})s(w+)/;
3 var result = pattern.exec(str);
4 console.log(result[0]);
5 console.log(result[1]);
6 console.log(result[2]);
如果想使用exec方法对字符串中的某个结果进行全面匹配,那么正则表达式必须要开启全局模式。在非全局的模式下, 示例: 1 var pattern = /a/g;
2 while(result = pattern.exec('abababab')){
3 console.log(result+'index:'+ result.index +' input:'+ result.input);
4 }
· compile() compile可以重新指定正则实例的规则与修饰符。 var pattern = /res/i;
pattern.compile('rp','g') -> /rp/g
2.4 RegExp对象的属性· 静态属性 静态属性是RegExp这个内置对象的固有属性。访问这些静态属性,不需要进行声明实例化,而是直接调用。 var desc = 'Hello,everyone.My name is gtshen'; reg = /na(.?)/g; reg.test(desc); 这段代码测试为例,进行说明: - input - lastMatch - lastParen - leftContext - rightContext - multiline - $1 - $9 * 注意的是“RegExp”指的是最近一次在程序运行中进行匹配操作的正则实例对象。 · 实例属性 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

