为了账号安全,请及时绑定邮箱和手机立即绑定

一个JS数组有两个值相同的元素,用正则test()方法测试出来却是一个true,一个false?

一个JS数组有两个值相同的元素,用正则test()方法测试出来却是一个true,一个false?

牛魔王的故事 2018-10-10 13:15:57
代码如下:var arr = ["aab", "aab"];var p = /(.)(?:\1+)/g;p.test("aab");//truep.test(arr[0]);//falsep.test(arr[1]);//true再次进行测试:p.test(arr[0]);//falsep.test(arr[1]);//truep.test(arr[0]);//falsep.test(arr[1]);//true发现是true false交替下去的随机换了组数据测试:var arr1 = ["a", "a"];var p1 = /\w/g;p1.test("a");//truep1.test(arr[0]);//truep1.test(arr[1]);//true应该是我关于js数组或者正则表达式有什么地方的特性没有了解到。还望解答: )
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

给你个这个东东看看,直接截图,不打字,不墨迹

https://img1.sycdn.imooc.com//5bf2951e000158eb07730624.jpg

此处你的代码使用了同一个RegExp实例,自然第一次会是true,但是第二次test时,是从第2个字符开始检测,类似于
/(.)(?:\1+)/g.test('b')自然得到false

查看完整回答
反对 回复 2018-11-19
  • 1 回答
  • 0 关注
  • 771 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信