摘要
string.split(delimiter, limit)
参考
delimiter
字符串或正则表达式,从该参数指定的地方分割string。
limit
这个可选的整数指定了返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数字。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
返回值
一个字符串数组,是通过在delimiter指定的边界处将字符串string分割成子串创建的。返回的数组中的子串不包括delimiter自身,但下面列出的情况除外。
描述
方法split()将创建并返回一个字符串数组,该数组中的元素是指定的字符串string的子串,最多具有limit个。这些子串是通过从头到尾检索字符串中与delimiter匹配的文本,在匹配文本之前和之后分割string得到的。返回的子串中不包括定界符文本(文本部分结尾处提到的情况除外)。如果定界符从字符串开关开始匹配,返回的数组的第一个元素是空串,即出现在定界符之前的文本。同样,如果定界符的结尾匹配,返回的数组的最后一个元素也是空串(假如与limit没有冲突)。
如果没有指定delimite
例子
在使用结构复杂的字符串时,方法split()最有用。例如:
"1:2:3:4:5".split(":"); // Returns ["1","2","3","4","5"]
"|a|b|c|".split("|"); // Returns ["", "a", "b", "c", ""]
split()方法的另一个常见用法是解析命令的与之相似的字符串,用空格将它们分割成单词:
var words = sentence.split(' ');
正则表达式作为定界符,很容易把字符串分割成单词:
var words = sentence.split(/\s+/);
要把字符串分割成字符数组,可以用空串作为定界符。如果只想把字符串前一部分分割成字符数组,需要使用limit参数:
"hello".split(""); // Returns ["h","e","l","l","o"]
"hello".split("", 3); // Returns ["h","e","l"]
如果想便返回的数组包括定界符或定界符的一个或多个部分,可以使用带子表达式的正则表达式。例如,下面的代码将在HTML标记处分割字符串,返回的数组中包括这些标记:
var text = "hello <b>world</b>";
text.split(/(<[^>]*>)/); // Returns ["hello ","<b>","world","</b>",""]
参阅
Array.join()
RegExp