关于理解正则表达式的几个问题
a few questions on understanding a regex
这个正则表达式应该捕获元素的不透明度值(如果它有),但我对它的作用有点困惑:
function getOpacity(elem) {
var filter = elem.style.filter;
return filter ?
filter.indexOf("opacity=") >= 0 ? (parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "" : "" : elem.style.opacity;
}
这里似乎有一个正在进行的捕获([^)]+)
。在它里面,一个或多个右括号应该被忽略[^)]+
。我想我一定错了。一个或多个右括号会被忽略什么?这没有道理。
无论如何,regex似乎结束了,因为在最后提到的+
之后,有一个/
。这是否意味着regEx的终止?紧接着,存在对捕获CCD_ 5的调用。所以也许它实际上还没有结束。。?
如有任何帮助,我们将不胜感激。javascript忍者书籍的RegEx curtesy
[^)]+
并不意味着"忽略右括号",它的意思是"收集尽可能多的字符(至少一个),即除右括号之外的任何字符。换句话说,直到下一个右括号的所有字符。
[^)]+
-表示一个或多个不在括号内的字符。
因此,对于filter: alpha(opacity=50)
字符串,/opacity=([^)]+)/
将与50
匹配
/
终止正则表达式,[1]
部分提取数组中的第二个索引。(在这种情况下是第二次匹配)
你几乎做对了。[^)]+
表示再匹配一个非")"字符。
是的,/
标记正则表达式的结束。
[)]
匹配一个右括号,而[^)]
匹配任何但是右括号的内容。他们是对立的。[^)]+
贪婪地匹配任何数量的不在括号内的连续字符。
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- 正则表达式只允许 x 个整数
- 正则表达式与数字中的第二个点匹配
- 正好包含2个大写字母和3个数字的正则表达式
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 如何匹配多个值使用正则表达式返回单个值
- 删除两个字符串正则表达式之间的所有内容
- 用于匹配错误和关联几行的正则表达式
- 正则表达式 - 字符串不能以空格开头,以空格结尾,并且连续包含几个空格
- 在这种情况下,正则表达式中的“[”是什么( 2 个问题)
- 使用正则表达式提取句子中的最后几个单词
- 删除所有电子邮件,外部链接,联系电话和几个词正则表达式
- 我的验证码有什么问题?(正则表达式很好)
- 匹配两个punkts正则表达式
- 第一个单词的正则表达式是星期几
- 关于理解正则表达式的几个问题
- 我为使用三个输入的电话号码使用的正则表达式代码有什么问题?
- Javascript:如何检查字符串中是否存在两个数字?(正则表达式)
- Javascript正则表达式来匹配几个条件
- JavaScript正则表达式,以匹配字符串中几个类名中的一个