而本文的主要內容是「分割字串,變成多個更小的子串,並將這些子串傳給陣列,作為陣列元素」;簡單來說就是「字串轉為陣列」。
那麼這樣怎麼操作呢?我們可以使用JavaScript內建的函數split()
。
string.split(separator,limit)
用於把一個字串分割成字串陣列;接受兩個可省略的引數separator
(分割符或正規表示式,指定分割位置)和limit
(指定返回的陣列的最大長度)
可省略的引數separator
有多種取值情況,不同的情況返回的陣列也不一樣:
1、split()方法不接受引數:
var str="How are you doing today?"; var arr=str.split(); console.log(arr);
當引數為空時,則該方法會把整個字串作為一個元素的陣列返回(此時陣列長度為1)。因此輸出結果為:
2、split()方法的separator引數為空字串
var str="How are you doing today?"; var arr=str.split(''); console.log(arr);
當separator引數為空字串時,那麼該方法會按照單個字元進行分割,每個字元之間都會被分割,則會返回一個包含所有單個字元的字元陣列(此時陣列長度為字串的長度)。因此輸出結果為:
3、split()方法的separator引數為空格' '
var str="How are you doing today?"; var arr=str.split(' '); console.log(arr);
當separator引數為空格時,那麼該方法會按照空格來進行分割,將字串中的每個單詞都分割出來作為陣列元素。因此輸出結果為:
4、split()方法的separator引數為正規表示式
var str= "a2b3c4d5e678f12g"; var arr=str.split(/\d+/); //把以匹配的數位為分隔符來切分字串 console.log(arr);
當separator引數為正規表示式,則該方法能夠以匹配文字作為分隔符進行切分。例如上例中就是匹配0~9的數位,將數位作為分割符,因此輸出結果為:
如果正規表示式匹配的文字位於字串的邊沿,則 split() 方法也執行切分操作,且為陣列新增一個空陣列。
var str= "122a2b3c4d5e678f12g456"; var arr=str.split(/\d+/); //把以匹配的數位為分隔符來切分字串 console.log(arr);
如果在字串中指定的分隔符沒有找到,則返回一個包含整個字串的陣列。
var str= "abcdefg"; var arr=str.split(/\d+/); //把以匹配的數位為分隔符來切分字串 console.log(arr);
指定包含的子串數目
如果分割的子串太多,只是想要獲取前幾個子串,那麼可以第二個引數limit
。
第二個引數limit
可指定返回陣列的最大長度,即可設定包含的子串數目。如果設定了該引數,則返回的陣列長度不會大於這個引數指定的值:
var str="How are you doing today?"; var arr=str.split(' ',3); console.log(arr);
引數limit不接受負值,如果設定了負值,則該值會被會略掉。
var str="How are you doing today?"; var arr=str.split(' ',-3); console.log(arr);
好了,就說到這裡了,有需要的可以看:
以上就是JS字串學習之將字串分割成子串並傳給陣列的詳細內容,更多請關注TW511.COM其它相關文章!