JavaScript RegExp 基础详谈
实例属性,就是指必须进过声明或实例化后的正则表达式对象方能调用的属性。 var pattern = /w?/g; - ingoreCase - global - multiline - lastIndex 1 var desc = 'hellow,hi,oh'; 2 pattern.test(desc) 3 console.log(pattern.lastIndex) //-> 1; 4 pattern.lastIndex = 2; 5 console.log(pattern.lastIndex) // -> 3; - source * ingoreCase、global、multiline等均为只读属性,不能直接修改正则表达式的修饰符。
正则表达式是有两种字符模式组成:“普通字符”、"元字符"。通过这两种字符模式的结合使用,可以编写出符合我们要求的正则规则。 元字符:元字符更接近计算机语言中的变量含义,它可以代表某种特殊的含义,并且会根据使用场合不同,其具体的含义也不尽相同。 普通字符很好理解,按照计算机语言中的字面量去理解就可以,我们着重研究“元字符”。 3.1 特殊字符一览表: 3.2 转义运算符 功能:对元字符进行转义,使其转换为普通字符。 1 var pattern = /[/; 2 var str = '[]'; 3 console.log(pattern.test(str)) // -> true; 3.3 量词 ?:表示匹配0次或1次 3.4 边界 b:匹配单词边界,用于匹配一个整体的单词时使用。 3.5 类 “类”是具有相同特征的集合,是一个泛指。 · 字符类 · 范围类 示例: 1 var str = 'google'; 2 var pattern = /[gle]/; 3 console.log(pattern.test(str)) 3.6 贪婪模式与非贪婪模式 贪婪模式会按照匹配规则尽可能的去匹配,一直到匹配失败。 贪婪匹配 非贪婪匹配 取消贪婪模式也很简单,在原有的基础上附加上一个?号,这时就改为非贪婪模式,一旦条件满足,就不再往下匹配。 示例: 1 var str = 'aaa', 2 pattern1 = /a*/, 3 pattern2 = /a*?/; 4 pattern1.exec(str); // -> aaa 5 pattern2.exec(str); // -> '' 3.7 分组 分组就是把要匹配的结果作为一个组一个整体来看待。因此只要是属于该分组的信息,都要放在()符号内。 · () 捕获性分组 示例: 1 var str = '123abc'; 2 var pattern = /(d{4})(w+)/; 3 pattern.test(str); 4 console.log(RegExp.$1) //-> 123 5 console.log(RegExp.$2) //-> abc · (?:) 非捕获性分组 示例: 1 var str = '123abc'; 2 var pattern = /(d{3})(?:w+)/; 3 pattern.test(str); 4 console.log(RegExp.$1) //-> 123 5 console.log(RegExp.$2) //-> ''; · ((...)) 嵌套分组 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |