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

两个相同数组元素,使用同一个正则验证,但验证结果不同?求教各位前辈指导问题原因!!!

两个相同数组元素,使用同一个正则验证,但验证结果不同?求教各位前辈指导问题原因!!!

繁花不似锦 2019-03-12 13:12:03
一个数组内有几个重复元素,使用相同的正则去test();相同元素返回的结果一个是true一个却是false。请教各位前辈该问题原因出在哪里?<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>index测试</title></head><body><script>    window.onload = function () {        var test1_reg = /(\[(NO)|(OK)+|\[[\u4e00-\u9fa5]{1,3}\])/g;        var new_arry2 = ['[微123笑]123', '[色]', '[123流泪][呲123牙]', '[色]', '[色]', 123, '[色]', '[色]', '[色]', '[色]'];        document.write(new_arry2 + '<br/>' + '<br/>');        document.write(test1_reg.test(new_arry2[0]) + '===' + new_arry2[0] + '<br/>');        document.write(test1_reg.test(new_arry2[1]) + '===' + new_arry2[1] + '<br/>');        document.write(test1_reg.test(new_arry2[2]) + '===' + new_arry2[2] + '<br/>');        document.write(test1_reg.test(new_arry2[3]) + '===' + new_arry2[3] + '<br/>');        document.write(test1_reg.test(new_arry2[4]) + '===' + new_arry2[4] + '<br/>');        document.write(test1_reg.test(new_arry2[5]) + '===' + new_arry2[5] + '<br/>');        document.write(test1_reg.test(new_arry2[6]) + '===' + new_arry2[6] + '<br/>');        document.write(test1_reg.test(new_arry2[8]) + '===' + new_arry2[8] + '<br/>');        document.write(test1_reg.test(new_arry2[9]) + '===' + new_arry2[9] + '<br/>');    };</script></body></html>
查看完整描述

2 回答

?
慕姐4208626

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

如果正则表达式设置了全局标志,test() 的执行会改变正则表达式 lastIndex属性。连续的执行test()方法,后续的执行将会从 lastIndex 处开始匹配字符串.


var regex = /foo/g;


// regex.lastIndex is at 0

regex.test('foo'); // true


// regex.lastIndex is now at 3

regex.test('foo'); // false


查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 409 浏览
慕课专栏
更多

添加回答

举报

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