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

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

正向前瞻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’

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


正在回答

1 回答

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

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

举报

0/150
提交
取消
JavaScript正则表达式
  • 参与学习       96803    人
  • 解答问题       126    个

JavaScript正则表达式教程,理解之后,正则表达式比你想象的简单

进入课程

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

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号