問題描述
使用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í)行不同的分支,主要分支為分支
主站蜘蛛池模板:
兴宁市|
家居|
泰州市|
上杭县|
穆棱市|
托里县|
隆化县|
许昌市|
崇文区|
连江县|
都昌县|
秭归县|
深水埗区|
江津市|
罗平县|
璧山县|
黄山市|
黑龙江省|
海安县|
定日县|
南郑县|
福安市|
夹江县|
上高县|
邵武市|
大足县|
隆昌县|
惠东县|
富宁县|
馆陶县|
青冈县|
大名县|
江门市|
德保县|
邵阳县|
台湾省|
闵行区|
信宜市|
昭觉县|
潍坊市|
吕梁市|