猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
console.log(/(?=^a)bd/.test('abd,bcd'))//为什么会打印出false
请问各位大佬。为什么console.log(/(?=^a)bd/.test('abd,bcd'))//为什么会打印出false。可能是我对?=这个东西理解还不够深
慕姐8265434
浏览 394
回答 2
2回答
浮云间
我是这样记的,一般的正则符号匹配的是一个或多个字符,而这些前瞻后瞻规则匹配的是一个位置。想象在待匹配的字符串的每个字符前后都有一个光标在闪,这些光标就是我说的位置。(?=exp)匹配一个位置,这个位置的后面跟的是exp(?!exp)匹配一个位置,这个位置的后面跟的不是exp(?所以这里就矛盾了,永远也不可能有字符串满足这个正则,一个位置的后面既要是^a又要紧跟着bd。反过来bd(?=a)就对了,匹配db后面跟一个位置,这个位置的后面必须是a。(?
0
0
0
交互式爱情
正向前瞻,去了解下?=a是说后面是否带有a而?=^又是开头的意思,所以为false/(?
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续