在 javascript 正则表达式中使用 ?=
Using ?= in javascript regular expression
在javascript
console.log(/x(?=b[1-9])/.test('xb2')); // true
console.log(/x(?=b[1-9])$/.test('xb2')); // false
有什么区别?
第一个模式 x(?=b[1-9])
匹配 x
,然后是 b
和一个数字。输入 xb2
与此匹配。
第二个模式 x(?=b[1-9])$
有冲突,永远无法匹配任何内容。此模式表示匹配:
x the letter x
(?=b[1-9]) assert that b and 1-9 follows
$ match end of the input
不可能b[1-9]
跟在x
后面,同时x
是输入的结尾。在你的问题中使用第一个版本。
在javascript
console.log(/x(?=b[1-9])/.test('xb2')); // true
console.log(/x(?=b[1-9])$/.test('xb2')); // false
有什么区别?
第一个模式 x(?=b[1-9])
匹配 x
,然后是 b
和一个数字。输入 xb2
与此匹配。
第二个模式 x(?=b[1-9])$
有冲突,永远无法匹配任何内容。此模式表示匹配:
x the letter x
(?=b[1-9]) assert that b and 1-9 follows
$ match end of the input
不可能b[1-9]
跟在x
后面,同时x
是输入的结尾。在你的问题中使用第一个版本。