Home > Software engineering >  Using ?= in javascript regular expression
Using ?= in javascript regular expression

Time:12-26

in javascript

console.log(/x(?=b[1-9])/.test('xb2')); // true

console.log(/x(?=b[1-9])$/.test('xb2')); // false

what is difference ?

CodePudding user response:

The first pattern x(?=b[1-9]) matches x which is then followed by b and a digit. The input xb2 matches this.

The second pattern x(?=b[1-9])$ is conflicting, and can never match anything. This pattern says to match:

x           the letter x
(?=b[1-9])  assert that b and 1-9 follows
$           match end of the input

It is impossible for b[1-9] to follow x while at the same time x is the end of the input. Use the first version in your question.

  • Related