split(/[^\,]+/) 解释

colors3=colorText.split(/[^\,]+/)
麻烦解释一下split(/[^\,]+/)括号里的一串是啥意思?

阅读 5.7k
3 个回答

先看下效果

var colorText = "color:white,red,\\xx\\y";
colorText.split(/[^\,]+/)
//结果
//["", ",", ",", ""]

这个split函数里面的正则表达式的意思是非,的情况,
即除了,之外的“字符”;
那么split就会把“字符”当作切分字符串的标记,那么剩下的自然是,啦,
至于为什么会有两头的空字符呢
就好像从字符串的中间位置切开,应该还剩下两端这种感觉。

总结,
1.这个/[^\,]+/正则表达式和/[^,]+/效果一致的
2.如果不要切分结果两端的空格,应该这么做

参考文档
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split

1 表示从逗号开始匹配,+ 代表,包含逗号的意思(+...) 所以这个意思是colortext遇到逗号后就分组,分成一个数组。


  1. ,

括号里是正则。
以多个非逗号的字符进行分割

推荐问题
宣传栏