为了账号安全,请及时绑定邮箱和手机立即绑定

关于正负向前瞻,感觉教程和定义不一样

正向前瞻exp(?=assert)是在正则表达式匹配到规则的时候向前检查是否符合断言。是的话执行正向前瞻

负向前瞻exp(?!assert)是在正则表达式匹配到规则的时候向前检查是否不符合断言。是的话执行负向前瞻

都是从后往前匹配

\w匹配的是 [a-zA-Z_0-9]

'a2*34v8'.replace(/\w(?=\d)/g,‘X’)

为什么结果是‘X2*X4X8’?不是应该从后往前匹配么?a符合\w,但是前面没有数字不符合(?=\d)。

还有'a2*34v8'.replace(/\w(?!\d)/g,‘X’) ,结果是‘aX*3XXX’

这两个都和正向前瞻和负向前瞻定义相反,为什么??


正在回答

2 回答

“正则表达式是从文本头部向尾部解析”。这就像在走路,没走过的路在你的前面,需要你往前看(前瞻);走过的路需要你回头看(后顾)

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于正负向前瞻,感觉教程和定义不一样

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信