一个字符串通过正则拆分为数组,出现部分字符串元素重复拆分,求教各位前辈原因出在哪里?
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>
皈依舞
守着星空守着你
相关分类