在 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是输入的结尾。在你的问题中使用第一个版本。