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”指的是最近一次在程序运行中进行匹配操作的正则实例对象。 · 实例属性 (编辑:源码门户网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |