字符通过正则split拆分为数组时,部分内容出现重复拆分,求教问题出现原因!!!

一个字符串通过正则拆分为数组,出现部分字符串元素重复拆分,求教各位前辈原因出在哪里?


var new_str = '[撇132313嘴][色]{}“——[尴13221尬][冷132123汗][抓123123狂]123123[撇嘴][NO]123[色]123[OK]';

var test_reg = /((\[NO\])|(\[OK\])+|\[[\u4e00-\u9fa5]{1,3}\])/g;

期望的拆分结果是:


["[撇132313嘴]", "[色]", "{}“——[尴13221尬][冷132123汗][抓123123狂]123123", "[撇嘴]", "[NO]","123", "[色]", "123", "[OK]"]

但实际拆分结果是:


 ["[撇132313嘴]", "[色]", "{}“——[尴13221尬][冷132123汗][抓123123狂]123123", "[撇嘴]", "[NO]", "[NO]", "123", "[色]", "123", "[OK]", "[OK]"]

字符串中[NO]和[OK]拆分了两次,求教各位前辈帮助分析原因出在哪里!!!!以下是全部代码。


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

</head>

<body>

    <script>

        //---1    /\[((NO)|(OK)+|[\u4e00-\u9fa5]{1,3})\]/g

        //---2    /(\[(NO)|(OK)+|\[[\u4e00-\u9fa5]{1,3}\])/g

        var test_reg = /((\[NO\])|(\[OK\])+|\[[\u4e00-\u9fa5]{1,3}\])/g;

        var new_str = '[撇132313嘴][色]{}“——[尴13221尬][冷132123汗][抓123123狂]123123[撇嘴][NO]123[色]123[OK]';

        var new_arry = new_str.split(test_reg);

        var arry = [];

        for (var i = 0; i <= new_arry.length; i++) {

            if (new_arry[i] !== '' && new_arry[i] !== undefined) {

                arry.push(new_arry[i]);

            }

        }

        console.log(arry);

    </script>

</body>

</html>


牧羊人nacy
浏览 690回答 2
2回答

皈依舞

你这是正则表达式多个()捕获的原因,你改成下面这样就好了/(\[NO\]|\[OK\]|\[[\u4e00-\u9fa5]{1,3}\])/g;

守着星空守着你

哈哈,测试了半天,终于发现了。你的正则表达式有问题:正确的正则表达式为:test_reg = /([\[]NO[\]])|([\[]OK[\]])+|[\[][\u4e00-\u9fa5]{1,3}[\]]/g;new_str = '撇132313嘴{}“——尴13221尬[抓123123狂]123123撇嘴123[色]123[OK]';test_reg = /([[]NO[]])|([[]OK[]])+|[{1,3}[]]/g;a= new_str.split(test_reg);< Array (16) = $30 "[撇132313嘴]"1 undefined2 undefined3 "{}“——尴13221尬[抓123123狂]123123"4 undefined5 undefined6 ""7 "[NO]"8 undefined9 "123"10 undefined11 undefined12 "123"13 undefined14 "[OK]"15 ""PS: 至于为什么有问题,哪里有问题,你把一个个正则拆开来匹配就会发现了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript