分割字符串
在JavaScript中,我们可以使用split( )方法把一个字符串分割成一个数组,
这个数组存放的是原来字符串的所有字符片段。
有多少个片段,数组元素个数就是多少。
语法
字符串名.split("分割符")
说明
分割符可以是一个字符、多个字符或一个正则表达式。
此外,分割符不作为返回的数组元素的一部分。
有点难理解?我们还是先来看一个例子。
举例
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><script>var str="HTML,CSS,JavaScript";var arr=str.split(",");document.write("数组第1个元素是:"+arr[0]+"<br/>");document.write("数组第2个元素是:"+arr[1]+"<br/>");document.write("数组第3个元素是:"+arr[2]);</script>
</head>
<body>
</body>
</html>
浏览器预览效果如下图所示。
分析
str.split(“,”)表示使用英文逗号作为分割符来分割str这个字符串,
结果会得到一个数组:[“HTML”,“CSS”,“JavaScript”],
我们把这个数组赋值给变量arr保存起来。
可能有人会问:为什么分割字符串之后,系统会把这个字符串转换成一个数组?
这是因为转换成数组之后,我们就能使用数组的方法来更好地进行操作。
上面的这个例子,也可以使用for循环来输出,实现代码如下。
var str="HTML,CSS,JavaScript";
var arr=str.split(",");
for(var i=0; i < arr.length; i++)
{document.write("数组第"+(i+1)+"个元素是:"+arr[i]+"<br/>");
}
举例:str.split(" ")(有空格)
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><script>var str="I love javascript";var arr=str.split(" ");document.write("数组第1个元素是:"+arr[0]+"<br/>");document.write("数组第2个元素是:"+arr[1]+"<br/>");document.write("数组第3个元素是:"+arr[2]);</script>
</head>
<body>
</body>
</html>
浏览器预览效果如下。
数组第1个元素是:I
数组第2个元素是:love
数组第3个元素是:javascript
分析
str.split(" ")表示用空格来分割字符串。在字符串中,空格也是作为一个字符来处理的。
str.split(" “)的两个引号之间是有一个空格的。str.split(” “)(有空格)是带有1个字符的字符串。str.split(”")(无空格)是带有0个字符的字符串,也叫空字符串。两者是不一样的,我们可以通过下面这个例子来对比理解。
举例:str.split(“”)(无空格)
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><script>var str="ABCD";var arr=str.split("");document.write("数组第1个元素是:"+arr[0]+"<br/>");document.write("数组第2个元素是:"+arr[1]+"<br/>");document.write("数组第3个元素是:"+arr[2]+"<br/>");document.write("数组第4个元素是:"+arr[3]+"<br/>");</script>
</head>
<body>
</body>
</html>
浏览器预览效果如下:
数组第1个元素是:A
数组第2个元素是:B
数组第3个元素是:C
数组第3个元素是:D
分析
注意,split(" “)和split(”")是不一样的。前者两个引号之间有空格,表示用空格作为分割符来分割。后者两个引号之间没有空格,可以用来分割字符串的每一个字符。这个技巧非常棒,也用得很多,小伙伴们可以记一下。
实际上,split( )方法有两个参数:第1个参数表示分割符,第2个参数表示获取“分割之后的前n个元素”。第2个参数我们很少用,了解一下即可。
举例
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title></title><script>var str="2023-07-01-18-30";var arr=str.split("-",3);document.write(arr);</script>
</head>
<body>
</body>
</html>
浏览器预览效果如下
2023,07,01
最后,数组join( )方法一般都是配合字符串的split( )方法来使用的。