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。(?

交互式爱情

正向前瞻,去了解下?=a是说后面是否带有a而?=^又是开头的意思,所以为false/(?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript