前瞻
1.正则表达式从文本头部向尾部开始解析,文本尾部方向,称为“前”
2.前瞻就是在正则表达式匹配到规则的时候,向前检查是否符合断言(条件),后顾/后瞻方向相反
3.JavaScript不支持后顾
4.符合和不符合特定断言(条件)称为 肯定/正向 匹配和 否定/负向 匹配
名称 | 正则 | 含义 |
正向前瞻 | exp(?=assert) |
|
负向前瞻 | exp(!=assert) |
|
正向后顾 | exp(?<=assert) | Javascript不支持 |
负向后顾 | exp(?<!assert) | Javascript不支持 |
正向前瞻
第一部分为规则部分,第二部分为断言(条件)部分
正向前瞻:\w(?=\d)
'a2*3'.replace(/\w(?=\d)/g,'X');
结果:"X2*3"
'a2*34v8'.replace(/\w(?=\d)/g,'X');
结果:"X2*X4X8"
'a2*34vv'.replace(/\w(?=\d)/g,'X');
结果:"X2*X4vv"
负向前瞻:\w(?!\d)
'a2*34vv'.replace(/\w(?!\d)/g,'X');
结果:"aX*3XXX" //2是单词字符,*不是数字,2被匹配掉。以此类推
对象属性
g:global全文搜索,不添加,搜索到第一个匹配停止。默认false
i:ignore case 忽略大小写,默认大小写敏感。默认false
m:multiple lines 多行搜索。默认false
lastIndex 是当前表达式匹配内容的最后一个字符的下一个位置。(后面会举例介绍)
source 正则表达式的文本字符串