定义和用法
split() 方法用于把一个字符串分割成字符串数组。
语法
stringObject.split(separator,howmany)
参数 描述
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
返回值
一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
提示和注释
注释:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注释:String.split() 执行的操作与 Array.join 执行的操作是相反的。
例子
在本例中,我们将按照不同的方式来分割字符串:
var str="How are you doing today?" console.log(str.split(" ") ) console.log(str.split("") ) console.log(str.split(" ",3) ) //输出: //[How,are,you,doing,today?] //[H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?] //[How,are,you]
使用多个分割符进行分割
上面的例子是使用的最简单的一个分割符进行分割,也是我们常用的,但是在实际应用中我们也可能需要同时对多个字符进行分割
(1)使用join配合split
join()方法是在将数组转换为字符串的时候使用的,在这里我们可以利用它来进行多次分割,具体代码如下:
代码:
let str = "1+1-2*3/4"; let separator = "+-*/"; for(let i = 0; i < separator.length - 1; i++){ str = str.split(separator[i]).join(separator[i+1]); } console.log(str.split(separator[separator.length - 1])); //结果 //["1", "1", "2", "3", "4"]
(2)使用正则表达式进行分割
let str = "1+1-2*3/4" separator = /\+|-|\*|\//; console.log(str.split(separator)); //注意对特殊字符进行转义 //输出结果 //["1", "1", "2", "3", "4"]