求讲解一个js的正则表达式

最近在看JavaScript高级程序设计第三版,看到一个示例不是很明白

var colorText ="red,blue,green,yellow";
var colors3 = colorText.split(/[^\,]+/);

结果color3是

["", ",", ",", ",", ""]

正则表达式 [^\,] 的意思是说不接受逗号么?不明白为什么会出这样一个结果

阅读 2.3k
2 个回答

这个表达式的意思是, 除了,以外的任意字符
[^\,]其中的 ^ 意思就是取反
正则默认是贪婪模式, 所以会尽可能多的匹配, 所以会把red这类的字符串整体删掉

点击查看

[^,]+匹配的是1个及以上的非逗号,而split(/[^,]+/)的意思就是以这些匹配到的非逗号字符串为分隔符,所以结果正好是空字符和逗号
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题