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

一个数组内有几个重复元素,使用相同的正则去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>


繁花不似锦
浏览 410回答 2
2回答

慕姐4208626

如果正则表达式设置了全局标志,test() 的执行会改变正则表达式 lastIndex属性。连续的执行test()方法,后续的执行将会从 lastIndex 处开始匹配字符串.var regex = /foo/g;// regex.lastIndex is at 0regex.test('foo'); // true// regex.lastIndex is now at 3regex.test('foo'); // false
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript