問題描述
使用JavaScript的split方法拆分字符串時出現(xiàn)一些空字符串"",尤其是當(dāng)使用正則表達式作為分隔符的時候。
相關(guān)問題
javascript正則表達式對字符串分組時產(chǎn)生空字符串組?
在上面這個問題中,題主使用正則表達式對字符串進行分割時產(chǎn)生了多個空字符串"",代碼如下:
那么,產(chǎn)生這些空字符串的原因是什么?
問題分析
在Google上搜索了一番,發(fā)現(xiàn)相關(guān)的結(jié)果并不多,即便有,詳細解釋的也不多,大概的說了一下,然后就給出了一個ECMAScript規(guī)范的鏈接。看來要想知道真正的原因,就只能硬著頭皮看規(guī)范了。
相關(guān)標(biāo)準
那么,接下來,按照國際慣例,先上ECMAScript的標(biāo)準鎮(zhèn)樓。
這個章節(jié)詳細介紹了split方法的執(zhí)行步驟,如果感興趣的話可以一步一步的認真看完,我在這里只把和產(chǎn)生空字符串相關(guān)的步驟拿出來解釋一下,不當(dāng)之處,歡迎大家提出。
相關(guān)步驟
摘取部分步驟:
整個過程中最主要的步驟是第13步這個循環(huán),而這個循環(huán)主要做的事情如下:
•定義p, q的值,每一次循環(huán)開始的時候p和q的值是相同的(該步驟在循環(huán)之外);
•調(diào)用SplitMatch(S, q, R)這個方法對字符串進行拆分;
•根據(jù)返回結(jié)果的不同,執(zhí)行不同的分支,主要分支為分支
主站蜘蛛池模板:
绿春县|
泾源县|
探索|
南和县|
孟州市|
化德县|
民县|
岳池县|
昌黎县|
廉江市|
昌都县|
敖汉旗|
兰西县|
西宁市|
黔西县|
大新县|
安阳县|
伊通|
隆子县|
府谷县|
宜兴市|
光泽县|
四子王旗|
万荣县|
合作市|
忻州市|
益阳市|
稻城县|
东港市|
苏尼特左旗|
桦南县|
齐河县|
广南县|
卫辉市|
什邡市|
河曲县|
赤壁市|
南部县|
昌平区|
通辽市|
崇州市|