我的理解spilt函數是javascript中字符串和正則表達式的一個聯合應用。功能是根據指定的正則表達式(若是是字符串的話也會轉爲正則表達式)對字符串進行分割。返回值是一個被分割後的字符串數組。
最簡單額分割就是根據一個指定的字符對字符串進行分割。
如:
"a,n.c,b".split(",")//=>["a","n.c","b"]
上面這個應用很是好理解,可是看到JS權威指南的時候看到的一個例子卻讓我花費了點心思纔想清楚。
原文:
var text="teststring: 1, 2, 3";
text.split(/\D+/)//=>["","1","2","3"]
剛開始接觸到這種正則與字符串的混用確實會看起來有點難。這裏就說明應該如何一步步思考獲得這個結果。
首先看一個例子:
",a,b,c".split(",")//=>["","1","2","3"]
對於這個結果不用多言,可是能夠做爲咱們思考的一個起點。
我的剛開始難以理解的就是爲何在text使用非數字匹配之後會獲得一個空字符串做爲第一次分割的結果。對比思考這個問題咱們很容易就獲得答案了。text使用/\D+/匹配的第一次應該是"teststring: ",他做爲一個切割標識,可是他前面已經沒有字符,至關於例子中字符串(",a,b,c")中的第一個",",因此第一次返回爲""。
接下來就是字符值"1"後面開始匹配了,此次匹配的是", "這樣一個字符串,此時就會把"1" "2"分割出來。這樣整個思路就通順了。javascript