代码如下:
var arr = ["aab", "aab"];
var p = /(.)(?:\1+)/g;
p.test("aab");//true
p.test(arr[0]);//false
p.test(arr[1]);//true
再次进行测试:
p.test(arr[0]);//false
p.test(arr[1]);//true
p.test(arr[0]);//false
p.test(arr[1]);//true
发现是true false交替下去的
随机换了组数据测试:
var arr1 = ["a", "a"];
var p1 = /\w/g;
p1.test("a");//true
p1.test(arr[0]);//true
p1.test(arr[1]);//true
应该是我关于js数组或者正则表达式有什么地方的特性没有了解到。还望解答: )
给你个这个东东看看,直接截图,不打字,不墨迹
此处你的代码使用了同一个RegExp实例,自然第一次会是true,但是第二次test时,是从第2个字符开始检测,类似于
/(.)(?:\1+)/g.test('b')
自然得到false