使用字符串的 split() 方法可以根据指定的分隔符把字符串切分为数组。
如果使用数组的 join() 方法,可以把数组元素连接为字符串。
如果参数为空字符串,则 split() 方法能够按单个字符进行切分,然后返回与字符串等长的数组。
var s = "JavaScript";
var a = s.split(""); //按字符空隙分隔
console.log(s.length); //返回值为10
console.log(a.length); //返回值为10
如果参数为空,则 split() 方法能够把整个字符串作为一个元素的数组返回。
var s = "JavaScript";
var a = s.split(""); //空分隔
console.log(a.constructor == Array); //返回true,说明Array是实例
console.log(a.length); //返回值为1,说明没有对字符串进行分割
如果参数为正则表达式,则 split() 方法能够以匹配文本作为分隔符进行切分。
var s = "a2b3c4d5e678f12g";
var a = s.split(/\d+/); //把以匹配的数字为分隔符来切分字符串
console.log(a); //返回数组[a,b,c,d,e,f,g]
console.log(a.length); //返回数组长度为7
如果正则表达式匹配的文本位于字符串的边沿,则 split() 方法也执行切分操作,且为数组添加一个空数组。
var s = "122a2b3c4d5e678f12g";
var a = s.aplit(/\d+/);
console.log(a);
console.log(a.length);
如果在字符串中指定的分隔符没有找到,则返回一个包含整个字符串的数组。
split() 方法支持第二个参数,该参数是一个可选的整数,用来指定返回数组的最大长度。如果设置了该参数,则返回的数组长度不会大于这个参数指定的值;如果没有设置该参数,那么整个字符串都被分割,不会考虑数组长度。
var s = "JavaScript";
var a = s.split("", 4); //按顺序从左到右,仅分切4个元素的数组
console.log(a); //返回数组[J,a,v,a]
console.log(a.length); //返回值为4
如果想使返回的数组包括分隔符或分隔符的一个或多个部分,可以使用带子表达式的正则表达式来实现。
var s = "aa2bb3cc4dd5e678f12g";
var a = s.split(/(\d)/); //使用小括号包含数字分隔符
console.log(a); //返回数组[aa,2,bb,3,cc,4,dd,5,e,6,,7,,8,f,1,,2,g]