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