split()
函数用于使用指定分隔符分割字符串,并返回分割后的若干个子字符串组成的数组。
语法:
str.split( [separator [, limit]] )
类型声明:
interface String {split(separator: string | RegExp, limit?: number): string[];}
参数说明:
参数 | 说明 | 类型 |
---|---|---|
separator | 指定表示每个拆分应发生的点的字符串。separator 可以是一个字符串或正则表达式。 如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。如果在 str 中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。如果分隔符为空字符串,则将 str 原字符串中每个字符的数组形式返回。 | string / RegExp |
limit | 可选,一个整数,限定返回的分割片段数量。当提供此参数时,split 方法会在指定分隔符的每次出现时分割该字符串,但在限制条目已放入数组时停止。如果在达到指定限制之前达到字符串的末尾,它可能仍然包含少于限制的条目。新数组中不返回剩下的文本。 | number |
如果提供了 limit
参数,此函数返回的数组最多包含 limit
个元素。如果参数 limit
为负数,则该参数将被忽略掉。如果省略了 limit
,则 split()
函数不会考虑长度,直到分割完毕为止。如果 limit
为 0,则返回空的数组。
'abcd'.split();// ["abcd"]'abcd'.split('b');// ["a", "cd"]'abcd'.split('a');// ["", "bcd"]'abcd'.split('d');// ["abc", ""]'abcd'.split('abcd');// ["", ""]'abcd'.split('');// ["a", "b", "c", "d"]'abcd'.split(' ');// ["abcd"]''.split();// [""]''.split('');// []''.split(' ');// [""]
下例中,split
方法会查找 0 或多个空白符接着的分号,再接着 0 或多个空白符模式的字符串,找到后,就将空白符从字符串中移除,nameList
是 split
的返回数组。
var names = 'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ';var re = /\s*;\s*/;var nameList = names.split(re);console.log(nameList);// ["Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand "]
下例中,split
查找字符串中的 0 或多个空格,并返回找到的前 3 个分割元素(splits)。
var myString = 'Hello World. How are you doing?';var splits = myString.split(' ', 3);console.log(splits);// ["Hello", "World.", "How"]
如果 separator
包含捕获括号(capturing parentheses),则其匹配结果将会包含在返回的数组中。
var myString = 'Hello 1 word. Sentence number 2.';var splits = myString.split(/(\d)/);console.log(splits);// [ "Hello ", "1", " word. Sentence number ", "2", "." ]