This question already has answers here:
Why does a RegExp with global flag give wrong results?
(6个答案)
What is the meaning of the 'g' flag in regular expressions?
(8个答案)
上个月关闭。
如果我使用RegExp test(),它会在第一次给出正确的答案,但是此后它会返回相反的结果(如果找到匹配项);否则返回假结果:
如果我不使用'g'限定词,则所有操作均符合预期:
显然,这里有些我不理解的东西。但是呢
(6个答案)
What is the meaning of the 'g' flag in regular expressions?
(8个答案)
上个月关闭。
如果我使用RegExp test(),它会在第一次给出正确的答案,但是此后它会返回相反的结果(如果找到匹配项);否则返回假结果:
let regex = new RegExp('bird|dog', 'g')
console.log(regex.test('Imma bird')) // output: true
console.log(regex.test('Imma dog')) // output false !
console.log(regex.test('Imma dog')) // output true
console.log(regex.test('Imma bird')) // output false !?
console.log(regex.test('Imma bird')) // output true
console.log(regex.test('Imma bird')) // output false ??
console.log(regex.test('Imma believer')) // output false
console.log(regex.test('Imma believer')) // output false
console.log(regex.test('Imma believer')) // output false
如果我不使用'g'限定词,则所有操作均符合预期:
let regex = new RegExp('bird|dog')
console.log(regex.test('Imma bird')) // output true
console.log(regex.test('Imma bird')) // output true
console.log(regex.test('Imma believer')) // output false
console.log(regex.test('Imma believer')) // output false
显然,这里有些我不理解的东西。但是呢
最佳答案
g
标志告诉RegExp
对象记住上一次比赛的位置,并在下次尝试进行比赛(在这种情况下为测试)时从该位置继续。