一个数组内有几个重复元素,使用相同的正则去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
添加回答
举报
0/150
提交
取消