关于js的split,为什么返回的数组第一项和最后一项是两个空字符串。

clipboard.png

不懂这个是什么意思,请大佬解答一下

阅读 4.7k
3 个回答

colorText.split(/1+/)的意思应该是以“不是‘,’的多个字符”作为分隔符,所以在本例中就是以red,blue,green,yellow作为分隔符,因为red作为分隔符前面没有内容,所以是空字符串,最后一个空字符串也是这样的道理。


  1. ,

split方法 会将传入的字符串或者正则表达式 作为分割符进行分割。

这里的意思其实不难理解

var str = 'abc'

str.split('abc')    // ["",""]

当分隔符已经"占满"了位 又得进行分割成数组, 只能以空字符串来进行分割

可以理解为 "" + "abc" + "" 被 "abc" 给分割了

/[^\,]+/是指用非,的多个字符来进行分割,在color3中对应的分隔符就是redbluegreenyellow,,是被它们分隔开的元素。
文中所指的那个以red开头和以yellow结尾,就是说在整个字符串开头"red,.."red把前面和后面的字符分割了,后面刚好是,,但red前面有没有实际的字符,所以就以空字符来替代。同理yellow,前面有个,,后面没有实际字符,所以补不上了一个空字符串

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏