var color='red,blue,green';
color.split(/[^\,]+/);返回["", ",", ",", ""]
为什么?(这道题没有错,可以去控制台测试下,我想知道这个结果是怎么得来的)
var color='red,blue,green';
color.split(/[^\,]+/);返回["", ",", ",", ""]
为什么?(这道题没有错,可以去控制台测试下,我想知道这个结果是怎么得来的)
正则 '/[\^,]+/' 匹配出 'red' 'blue' 'green'.
有若干个占位符, 相当于color为'$,$,$'字符串.
// 好比调用如下方法
color.split('$'); // return ['',',', ',', '']
两个''空字符串.
存在的原因是split函数分隔的时候会将分隔符分隔成左右两部分.
如果左边没有字符就返回空字符
首先你得清楚 正则的意思
你这段(/[^\,]+/
的意思是匹配非 , 字符
然后color.split(/[^\,]+/)
是以三个字符串分隔的 最后匹配剩下的自然就是:
['', ',', ',', '']
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
6 回答839 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
匹配非
,
字符因此
是以
red
,blue
和green
这三个字符串为分割符的分割的结果显然是剩下的两个空串中间夹两个逗号。
即