在之前的文章《JS字符串學習之怎么統(tǒng)一所有字符的大小寫》中,我們介紹了統(tǒng)一字符串的大小寫的兩種方法,有需要的朋友可以學習了解一下~
而本文的主要內(nèi)容是“分割字符串,變成多個更小的子串,并將這些子串傳給數(shù)組,作為數(shù)組元素”;簡單來說就是“字符串轉(zhuǎn)為數(shù)組”。
那么這樣怎么操作呢?我們可以使用JavaScript內(nèi)置的函數(shù)split()
。
string.split(separator,limit)
用于把一個字符串分割成字符串數(shù)組;接受兩個可省略的參數(shù)separator
(分割符或正則表達式,指定分割位置)和limit
(指定返回的數(shù)組的最大長度)
可省略的參數(shù)separator
有多種取值情況,不同的情況返回的數(shù)組也不一樣:
1、split()方法不接受參數(shù):
var str="How are you doing today?"; var arr=str.split(); console.log(arr);
當參數(shù)為空時,則該方法會把整個字符串作為一個元素的數(shù)組返回(此時數(shù)組長度為1)。因此輸出結(jié)果為:
2、split()方法的separator參數(shù)為空字符串
var str="How are you doing today?"; var arr=str.split(''); console.log(arr);
當separator參數(shù)為空字符串時,那么該方法會按照單個字符進行分割,每個字符之間都會被分割,則會返回一個包含所有單個字符的字符數(shù)組(此時數(shù)組長度為字符串的長度)。因此輸出結(jié)果為:
3、split()方法的separator參數(shù)為空格' '
var str="How are you doing today?"; var arr=str.split(' '); console.log(arr);
當separator參數(shù)為空格時,那么該方法會按照空格來進行分割,將字符串中的每個單詞都分割出來作為數(shù)組元素。因此輸出結(jié)果為:
4、split()方法的separator參數(shù)為正則表達式
var str= "a2b3c4d5e678f12g"; var arr=str.split(/d+/); //把以匹配的數(shù)字為分隔符來切分字符串 console.log(arr);
當separator參數(shù)為正則表達式,則該方法能夠以匹配文本作為分隔符進行切分。例如上例中就是匹配0~9的數(shù)字,將數(shù)字作為分割符,因此輸出結(jié)果為:
-
如果正則表達式匹配的文本位于字符串的邊沿,則 split() 方法也執(zhí)行切分操作,且為數(shù)組添加一個空數(shù)組。
var str= "122a2b3c4d5e678f12g456"; var arr=str.split(/d+/); //把以匹配的數(shù)字為分隔符來切分字符串 console.log(arr);
-
如果在字符串中指定的分隔符沒有找到,則返回一個包含整個字符串的數(shù)組。
var str= "abcdefg"; var arr=str.split(/d+/); //把以匹配的數(shù)字為分隔符來切分字符串 console.log(arr);
指定包含的子串數(shù)目
如果分割的子串太多,只是想要獲取前幾個子串,那么可以第二個參數(shù)limit
。
第二個參數(shù)limit
可指定返回數(shù)組的最大長度,即可設(shè)置包含的子串數(shù)目。如果設(shè)置了該參數(shù),則返回的數(shù)組長度不會大于這個參數(shù)指定的值:
var str="How are you doing today?"; var arr=str.split(' ',3); console.log(arr);
參數(shù)limit不接受負值,如果設(shè)置了負值,則該值會被會略掉。
var str="How are you doing today?"; var arr=str.split(' ',-3); console.log(arr);
好了,就說到這里了,有需要的可以看:javascript視頻教程