第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求解stringObject.split(RegExp)出現(xiàn)字符串分隔錯誤?

求解stringObject.split(RegExp)出現(xiàn)字符串分隔錯誤?

蝴蝶刀刀 2019-03-27 16:13:17
string.split(RegExp)方法使用正則表達(dá)式分隔字符串,當(dāng)正則表達(dá)式含有小括號()的時候翻個的字符串會出現(xiàn)錯誤,但是通過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);然后我理想的返回結(jié)果是上圖是正則表達(dá)式中沒有加括號時強(qiáng)制性要求添加區(qū)號的返回結(jié)果var reg = /\d{3}-\d{7,9}/g;//上圖的結(jié)果使用該正則var reg = /(\d{3}-)?\d{7,9}/g;//下圖的結(jié)果使用該正則然而加了括號條件以后,使用str.split(reg)以后得到的卻是一個很奇怪的結(jié)果,里面拆分的結(jié)果不僅出現(xiàn)了奇怪的斷句錯誤,還出現(xiàn)帶有undefined的數(shù)據(jù)導(dǎo)致我后面的循環(huán)直接出現(xiàn)更大的錯誤,求解正則中添加括號出現(xiàn)這樣的問題怎么處理?
查看完整描述

1 回答

?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊

原因是split在處理含有捕獲組的正則的時候,會把捕獲組里面捕獲到的數(shù)據(jù)也當(dāng)做分割后結(jié)果的一部分。如下:
https://img1.sycdn.imooc.com//5ca46b7300015ef208000379.jpg

代碼如下:



var str="abclskd,jsldk-lskdfj778,jsdkf*jdkf";

var regex1=/[,*-]/;

str.split(regex1);

(5) ["abclskd", "jsldk", "lskdfj778", "jsdkf", "jdkf"]


var regex2=/([,*-])/;

str.split(regex2);

(9) ["abclskd", ",", "jsldk", "-", "lskdfj778", ",", "jsdkf", "*", "jdkf"]


var regex3=/(?:[,*-])/;

str.split(regex3);

(5) ["abclskd", "jsldk", "lskdfj778", "jsdkf", "jdkf"]

所以,為了不出現(xiàn)這樣的結(jié)果,你把()改為(?:)


查看完整回答
反對 回復(fù) 2019-04-03
  • 1 回答
  • 0 關(guān)注
  • 553 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號