字符串對象的`split`方法按照正則規則分割字符串,返回一個由分割后的各個部分組成的數組。
~~~
str.split(separator, [limit])
~~~
該方法接受兩個參數,第一個參數是正則表達式,表示分隔規則,第二個參數是返回數組的最大成員數。
~~~
// 非正則分隔
'a, b,c, d'.split(',')
// [ 'a', ' b', 'c', ' d' ]
// 正則分隔,去除多余的空格
'a, b,c, d'.split(/, */)
// [ 'a', 'b', 'c', 'd' ]
// 指定返回數組的最大成員
'a, b,c, d'.split(/, */, 2)
[ 'a', 'b' ]
~~~
上面代碼使用正則表達式,去除了子字符串的逗號后面的空格。
~~~
// 例一
'aaa*a*'.split(/a*/)
// [ '', '*', '*' ]
// 例二
'aaa**a*'.split(/a*/)
// ["", "*", "*", "*"]
~~~
上面代碼的分割規則是0次或多次的`a`,由于正則默認是貪婪匹配,所以例一的第一個分隔符是`aaa`,第二個分割符是`a`,將字符串分成三個部分,包含開始處的空字符串。例二的第一個分隔符是`aaa`,第二個分隔符是0個`a`(即空字符),第三個分隔符是`a`,所以將字符串分成四個部分。
如果正則表達式帶有括號,則括號匹配的部分也會作為數組成員返回。
~~~
'aaa*a*'.split(/(a*)/)
// [ '', 'aaa', '*', 'a', '*' ]
~~~
上面代碼的正則表達式使用了括號,第一個組匹配是`aaa`,第二個組匹配是`a`,它們都作為數組成員返回。
- 第一章:變量與作用域
- 第一節:變量
- 第二節:執行環境及作用域
- 第三節:JS 解析機制
- 第四節:垃圾收集
- 第二章:深入函數
- 第一節:概述
- 第二節:函數聲明
- 第三節:函數調用
- 第四節:函數參數
- 第五節:函數返回值
- 第三章:面向對象
- 第一節:概述
- 第二節:對象聲明
- 第三節:this 關鍵字
- 第四節:對象遍歷
- 第五節:對象繼承
- 第六節:模塊
- 第四章:正則表達式
- 第一節:概述
- 第二節:實例屬性
- 第三節:實例方法
- 第一課時:測試
- 第二課時:執行
- 第四節:匹配規則
- 第一課時:字面量字符和元字符
- 第二課時:轉義符
- 第三課時:特殊字符
- 第四課時:字符類
- 第五課時:預定義模式
- 第六課時:重復類
- 第七課時:量詞符
- 第八課時:貪婪模式
- 第九課時:修飾符
- 第十課時:組匹配
- 第五節:字符串的實例方法
- 第一課時:匹配
- 第二課時:搜索
- 第三課時:替換
- 第四課時:分割