string.split(RegExp)方法使用正则表达式分隔字符串,当正则表达式含有小括号()的时候翻个的字符串会出现错误,但是通过string.match(RegExp)的时候返回的值是我想要的是正确的
例如
var str = '【广州市】 【广州黄埔】(020-12345678、020-87654321) 的 88888888表带 () 已揽收';
var reg = /(\d{3}-)?\d{7,9}/g;
var phones = str.match(reg);
console.log(phones);
var arr = str.split(reg);
console.log(arr);
var element = [];
for(var i=0;i<arr.length;i++){
var item = {
text:arr[i],
click:false
}
element.push(item);
if(i==arr.length-1){
break;
}
var item2 = {
text:phones[i],
click:true
}
element.push(item2);
}
console.log(element);
然后我理想的返回结果是
上图是正则表达式中没有加括号时强制性要求添加区号的返回结果
var reg = /\d{3}-\d{7,9}/g;//上图的结果使用该正则
var reg = /(\d{3}-)?\d{7,9}/g;//下图的结果使用该正则
然而加了括号条件以后,使用str.split(reg)以后得到的却是一个很奇怪的结果,里面拆分的结果不仅出现了奇怪的断句错误,还出现带有undefined的数据
导致我后面的循环直接出现更大的错误,求解正则中添加括号出现这样的问题怎么处理?
精慕HU
相关分类