首页 > JavaScript 阅读:146

JS字符串和数组之间的转换

使用字符串的 split() 方法可以根据指定的分隔符把字符串切分为数组。

如果使用数组的 join() 方法,可以把数组元素连接为字符串。

示例1

如果参数为空字符串,则 split() 方法能够按单个字符进行切分,然后返回与字符串等长的数组。
var s = "JavaScript";
var a = s.split("");  //按字符空隙分隔
console.log(s.length);  //返回值为10
console.log(a.length);  //返回值为10

示例2

如果参数为空,则 split() 方法能够把整个字符串作为一个元素的数组返回。
var s = "JavaScript";
var a = s.split("");  //空分隔
console.log(a.constructor == Array);  //返回true,说明Array是实例
console.log(a.length);  //返回值为1,说明没有对字符串进行分割

示例3

如果参数为正则表达式,则 split() 方法能够以匹配文本作为分隔符进行切分。
var s = "a2b3c4d5e678f12g";
var a = s.split(/\d+/);  //把以匹配的数字为分隔符来切分字符串
console.log(a);  //返回数组[a,b,c,d,e,f,g]
console.log(a.length);  //返回数组长度为7

示例4

如果正则表达式匹配的文本位于字符串的边沿,则 split() 方法也执行切分操作,且为数组添加一个空数组。
var s = "122a2b3c4d5e678f12g";
var a = s.aplit(/\d+/);
console.log(a);
console.log(a.length);
如果在字符串中指定的分隔符没有找到,则返回一个包含整个字符串的数组。

示例5

split() 方法支持第二个参数,该参数是一个可选的整数,用来指定返回数组的最大长度。如果设置了该参数,则返回的数组长度不会大于这个参数指定的值;如果没有设置该参数,那么整个字符串都被分割,不会考虑数组长度。
var s = "JavaScript";
var a = s.split("", 4);  //按顺序从左到右,仅分切4个元素的数组
console.log(a);  //返回数组[J,a,v,a]
console.log(a.length);  //返回值为4

示例6

如果想使返回的数组包括分隔符或分隔符的一个或多个部分,可以使用带子表达式的正则表达式来实现。
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]