如果我使用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
很明显,我在这里有些不了解。但是呢?
答案 0 :(得分:1)
g
标志告诉RegExp
对象记住上一次比赛的位置,并在下次尝试进行比赛(在这种情况下为测试)时从那里继续。