断言
可以帮助我们查找某些内容时,对内容前和内容后的信息作为判断(但并不包括这些内容)(把内容前或后的信息作为判断依据但结果不包括这些内容,所以也被称为零宽断言)
比如我们要在字符串我是a我是b我是c我是d
, 我是
改为我不是
,就可以使用零宽正先行断言(?=X)(X代表需要被匹配但不被包括的内容)
var str = "我是a我是b我是c我是d"
var reg = /我是(?=a)/
console.log(str.replace(reg,'我不是'))
// "我不是a我是b我是c我是d"
断言的写法
-
VVV(?=XXX)
零宽正先行断言————只有在断言XXX在VVV的后边时,才会继续匹配 -
VVV(?!XXX)
零宽负先行断言————只有在断言XXX不在VVV的后边时,才会继续匹配 -
(?<=XX)VVV
零宽正后发断言————只有在断言XX在VVV的前边时,才会继续匹配 -
(?<!XX)VVV
零宽负后发断言————只有在断言XX不在VVV的前边时,才会继续匹配
需要注意
- 断言不占用字符,不被包括在内容中
- 断言一定要写在括号中()
- 后发断言以前在js中不支持
网友评论