此正则表达式应该捕获元素的不透明度值(如果有),但我对它的作用有点困惑:
function getOpacity(elem) {
var filter = elem.style.filter;
return filter ?
filter.indexOf("opacity=") >= 0 ? (parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "" : "" : elem.style.opacity;
}
这里似乎正在进行捕获([^)]+)
。在它的内部,一个或多个右括号应该被忽略[^)]+
。我想我一定是错了。一个或多个右括号会被忽略吗?这没有道理。
无论如何,看起来正则表达式结束了,因为在最后提到的+
之后,有一个/
。这是否表明正则表达式的终止?之后立即调用捕获[1]
。所以也许它实际上还没有结束..?
任何帮助准确理解这里发生的事情的信息都将受到赞赏。正则表达式感谢 javascript ninja book
最佳答案
[^)]+
并不意味着“忽略右括号”,它的意思是“收集尽可能多的字符(至少一个),即除右括号之外的任何字符。在其他情况下单词,直到下一个右括号的所有内容。
关于javascript - 关于理解正则表达式的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439775/