JavaScript字符串的分割

說完字符串的裁剪,這次來說說字符串的分割。

你可能會有所疑惑,裁剪和分割,這兩者到底有什么區(qū)別呢?

裁剪: 一次裁剪一部分子字符串并返回,可使用slice()、substring()substr()方法實現(xiàn)
分割: 一次可將字符串分割成多個子字符串并返回由這些子字符串組成的數(shù)組,可使用split()實現(xiàn)

好,了解了裁剪和分割的區(qū)別之后,我們接下來看看具體如何使用split()方法來實現(xiàn)字符串的分割。

首先,我們先定義一個字符串:

var str = 'Hello World!';

一、只傳一個參數(shù)

1. 傳入非空字符串

console.log(str.split('l'));    // [ "He","","o Wor","d!" ]

很簡單,我們把字符“l(fā)”作為分隔符傳入split()方法,最后返回被字符"l"分割成的子字符串組成的數(shù)組。

2. 傳入空字符串

我們也可以將字符串分割成一個個字母組成的數(shù)組,只需給split()傳入空字符串即可。

console.log(str.split(''));    // [ "H","e","l","l","o","","W","o","r","l","d","!" ]

3. 傳入正則表達(dá)式

console.log(str.split(/l+/));   // [ "He","o Wor","d!" ]

這個其實就是使用與正則相匹配的子字符串來分割原字符串,而這里匹配到的有兩個:“l(fā)”和“l(fā)l”,所以結(jié)果其實就是使用這兩個字符串來分割。

二、傳入兩個參數(shù)

第一個參數(shù)還是一樣,字符串或正則,而第二個參數(shù)則是一個數(shù)字,用于指定返回數(shù)組的大小。例如:

console.log(str.split('',5));   // [ "H","e","l","l","o" ]

這實際就是在str.split('')的基礎(chǔ)上又截取了輸出數(shù)組的前5項,與下面兩種方式的運行結(jié)果是一樣的:

console.log(str.slice(0,5).split(''));   // [ "H","e","l","l","o" ]
console.log(str.split('').slice(0,5));   // [ "H","e","l","l","o" ]

這兩種方式,一個是先裁后分,另一個則是先分后裁,最終結(jié)果都是一樣的。而給split()方法傳入第二個參數(shù)則相當(dāng)于是個簡化版,效果其實是一樣的。

三、逆操作方法

說完了split()的用法,再順便提一提該方法的逆操作方法——join()。

split(): 將字符串分割成數(shù)組
join(): 將數(shù)組合并成字符串

1. 不傳參

console.log(str.split('',5).join());   // "H,e,l,l,o"

默認(rèn)使用逗號來連接數(shù)組的每一項而組成字符串并返回。

2. 傳入空字符串

console.log(str.split('',5).join(''));   // "Hello"

直接將數(shù)組中的每一項連接起來組成字符串并返回。

3. 傳入非空字符串

console.log(str.split('',5).join('|'));   // "H|e|l|l|o"

使用所傳字符串參數(shù)來連接數(shù)組的每一項而組成字符串并返回。

四、活學(xué)活用

以上說了這么多,其實真正的內(nèi)容沒多少,關(guān)鍵還是應(yīng)該掌握如何在實際工作當(dāng)中去靈活使用。

下面我就隨便舉個簡單的小例子吧~

如何刪除字符串中的某個字符或字符串?

實現(xiàn)這個功能的方法可能有很多,但我個人覺得最簡單方便的就是同時使用split()join()了。

還是使用最開始的字符串,我們下面將所有的字符 “l(fā)” 刪除。

console.log(str.split('l').join(''));   // "Heo Word!"

很簡單,先分割后合并,不再贅述。

事實上,只要對數(shù)組可以實現(xiàn)的功能,在字符串上也能實現(xiàn),只要先使用split()將字符串轉(zhuǎn)換成數(shù)組,使用數(shù)組方法處理過后,再用join()將其轉(zhuǎn)換回字符串即可。

本文重點總結(jié):

split() 可以傳字符串或正則,也能傳第二參數(shù)
split() 的逆操作是 join()
③ 字符串和數(shù)組可以自由轉(zhuǎn)換,所以相當(dāng)于它們所具備的很多方法是可以通用的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ??引用類型的值(對象)是引用類型的一個實例。 ??在 ECMAscript 中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)...
    霜天曉閱讀 1,219評論 0 1
  • 前言 最先接觸編程的知識是在大學(xué)里面,大學(xué)里面學(xué)了一些基礎(chǔ)的知識,c語言,java語言,單片機(jī)的匯編語言等;大學(xué)畢...
    oceanfive閱讀 3,395評論 0 7
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,679評論 0 4
  • 明天要演講,先談?wù)勛约簞倎淼缴虾5母惺?,真情流露即可,不需要太多雞湯或者廢話,后面加上一點自己對于教育行業(yè)的看法和...
    徐小蕾閱讀 251評論 0 0
  • 在波瀾不驚的生活中,一個多月過去了。還有四天就是年初一。這天上午,我看看外面陽光和煦,帶著阿四、阿五到七浦路上,工...
    陳家老爺爺閱讀 239評論 0 0

友情鏈接更多精彩內(nèi)容