帮忙解释一下两个js正则表达式的不同效果
var color = "rgba(255, 255, 255, 0.6)";
// 1
/((rgba)*|\(|\))/ig
// 2
/(rgba|\(|\))*/ig
第二个表达式可以匹配到 ‘rgba’ ‘(’ 和 ‘)’, 第一个不能匹配到,为什么?
星号不能写在多选项里面吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在其他地方找到了答案。大概是因为JavaScript正则实现的问题,*匹配到了(前面的空字符,满足了(rgba)*的条件,所以匹配到的结果是'',匹配成功之后lastindex加1,跳过了(字符。详细的可以看一下两个链接。
http://stackoverflow.com/ques...
http://stackoverflow.com/ques...