扫码关注官方订阅号
var color='red,blue,green'; color.split(/[^\,]+/);返回["", ",", ",", ""]
为什么?(这道题没有错,可以去控制台测试下,我想知道这个结果是怎么得来的)
(/[^\,]+/)
匹配非 , 字符
,
因此
color.split(/[^\,]+/)
是以 red,blue 和 green 这三个字符串为分割符的
red
blue
green
分割的结果显然是剩下的两个空串中间夹两个逗号。
即
['', ',', ',', '']
正则 '/[\^,]+/' 匹配出 'red' 'blue' 'green'.有若干个占位符, 相当于color为'$,$,$'字符串.
// 好比调用如下方法 color.split('$'); // return ['',',', ',', '']
两个''空字符串.存在的原因是split函数分隔的时候会将分隔符分隔成左右两部分.如果左边没有字符就返回空字符
split接收的参数是分隔符。所以应该是 color.split(',');
split
color.split(',');
这样写color.split(',');
首先你得清楚 正则的意思你这段(/[^\,]+/的意思是匹配非 , 字符然后color.split(/[^\,]+/) 是以三个字符串分隔的 最后匹配剩下的自然就是:
(/[^\,]+/
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
匹配非
,字符因此
是以
red,blue和green这三个字符串为分割符的分割的结果显然是剩下的两个空串中间夹两个逗号。
即
正则 '/[\^,]+/' 匹配出 'red' 'blue' 'green'.
有若干个占位符, 相当于color为'$,$,$'字符串.
两个''空字符串.
存在的原因是split函数分隔的时候会将分隔符分隔成左右两部分.
如果左边没有字符就返回空字符
split接收的参数是分隔符。所以应该是color.split(',');这样写color.split(',');
首先你得清楚 正则的意思
你这段
(/[^\,]+/的意思是匹配非 , 字符然后
color.split(/[^\,]+/)是以三个字符串分隔的 最后匹配剩下的自然就是: