RegExp(/ [a-z \ d] / g).test('5')每次都返回true或false?

时间:2017-10-26 14:34:15

标签: javascript google-chrome

为什么这个正则表达式无法正常工作?

 new RegExp(/[a-z\d]/g).test('5');

结果有时是真的,其他时间是假的。 它不断在真/假

之间切换

var regx = new RegExp(/[a-z\d]/g);

console.log(regx.test('5')) // true
console.log(regx.test('5')) // false
console.log(regx.test('5')) // true
console.log(regx.test('5')) // false

1 个答案:

答案 0 :(得分:0)

这是因为从一开始就看到了结果:
lastIndex属性显示:首先找到lastIndex === 1,但由于字符串的长度为1,因此下一次搜索/测试为false字符串lastIndex是"重置"到0)



var regx = new RegExp(/[a-z\d]/g);

console.log(regx.test('5'), regx.lastIndex) // true 1
console.log(regx.test('5'), regx.lastIndex) // false 0
console.log(regx.test('5'), regx.lastIndex) // true 1
console.log(regx.test('5'), regx.lastIndex) // false 0