为什么这个正则表达式无法正常工作?
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
答案 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