javascript - 帮忙解释一下两个js正则表达式的不同效果

查看:126
本文介绍了javascript - 帮忙解释一下两个js正则表达式的不同效果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var color = "rgba(255, 255, 255, 0.6)";

// 1
/((rgba)*|\(|\))/ig

// 2
/(rgba|\(|\))*/ig

第二个表达式可以匹配到 ‘rgba’ ‘(’ 和 ‘)’, 第一个不能匹配到,为什么?
星号不能写在多选项里面吗?

解决方案

在其他地方找到了答案。大概是因为JavaScript正则实现的问题,*匹配到了(前面的空字符,满足了(rgba)*的条件,所以匹配到的结果是'',匹配成功之后lastindex加1,跳过了(字符。详细的可以看一下两个链接。
http://stackoverflow.com/ques...
http://stackoverflow.com/ques...

这篇关于javascript - 帮忙解释一下两个js正则表达式的不同效果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆