简体   繁体   中英

Using ?= in javascript regular expression

in javascript

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

what is difference?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM