这个正则表达式应该捕获一个元素的不透明度值(如果它有一个),但我对它在做什么有点困惑:
function getOpacity(elem) {
var filter = elem.style.filter;
return filter ?
filter.indexOf("opacity=") >= 0 ? (parseFloat(filter.match(/opacity=([^)]+)/)[1]) / 100) + "" : "" : elem.style.opacity;
}
似乎这里正在发生捕获([^)]+)
。并且在它里面,一个或多个右括号应该被忽略[^)]+
。我想我一定有这个错误。一个或多个右括号会被忽略吗?那没有意义。
无论如何,似乎正则表达式结束了,因为在最后+
提到之后,有一个/
. 这是否表明正则表达式的终止?之后立即调用 capture [1]
。所以也许它实际上还没有结束..?
任何帮助了解这里发生了什么都值得赞赏。javascript ninja book的正则表达式