我的理解spilt函数是javascript中字符串和正则表达式的一个联合应用。功能是根据指定的正则表达式(若是是字符串的话也会转为正则表达式)对字符串进行分割。返回值是一个被分割后的字符串数组。
最简单额分割就是根据一个指定的字符对字符串进行分割。
如:
"a,n.c,b".split(",")//=>["a","n.c","b"]
上面这个应用很是好理解,可是看到JS权威指南的时候看到的一个例子却让我花费了点心思才想清楚。
原文:
var text="teststring: 1, 2, 3";
text.split(/\D+/)//=>["","1","2","3"]
刚开始接触到这种正则与字符串的混用确实会看起来有点难。这里就说明应该如何一步步思考获得这个结果。
首先看一个例子:
",a,b,c".split(",")//=>["","1","2","3"]
对于这个结果不用多言,可是能够做为咱们思考的一个起点。
我的刚开始难以理解的就是为何在text使用非数字匹配之后会获得一个空字符串做为第一次分割的结果。对比思考这个问题咱们很容易就获得答案了。text使用/\D+/匹配的第一次应该是"teststring: ",他做为一个切割标识,可是他前面已经没有字符,至关于例子中字符串(",a,b,c")中的第一个",",因此第一次返回为""。
接下来就是字符值"1"后面开始匹配了,此次匹配的是", "这样一个字符串,此时就会把"1" "2"分割出来。这样整个思路就通顺了。javascript