跨浏览器不透明度的javascript正则表达式

标签 javascript regex

我正在阅读一本 JS 书籍,并在示例中发现了以下正则表达式。

(parseFloat(filter.match(/opacity=([^)]+/)[1]) / 100)

其中filter="alpha(opacity=50)"。我了解代码在做什么,并且要解析的返回匹配是数组中的第二个索引,即捕获 ([^),但我不明白该捕获如何使任何感觉。 ([^)]+ 如何匹配不透明度值?据我了解,如果插入符号用作第一个字符,那么它将匹配以后面的任何内容开头的字符串,或者如果它在字符类中使用,它将匹配除类中的内容之外的任何内容,例如[^abc]

但是在这种情况下,插入符号似乎没有执行任何这些操作,因为右方括号位于括号之外。可以说,我很困惑。

最佳答案

[^)]+ 正在获取不是右括号 ) 的任何字符序列。

正如 @jonny 指出的,缺少右括号。应为 /opacity=([^)]+)/

模式为 / opacity=([^)]+) / 其中 opacity= 均为文字字符和 [^)]+ 应与您需要的值匹配。重点关注方括号,而不是圆括号。

有了这个,我相信 filter.match( /opacity([^)]+)/ ) 将返回 位置[0] 处为opacity=50,位置[1] 处为50

filter.match(/opacity=([^)]+/) )[1] 返回数组位置 [1]< 中的部分.

然后,parseFloat 启动并将字符串 50 转换为一个数字,最后除以 100

关于跨浏览器不透明度的javascript正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32085486/

相关文章:

javascript - 如何在部分回发时保留 ASP 文本框的类

javascript - 删除事件不能防止默认

javascript - 在表格行点击时,警告框显示点击值

javascript - 如何自动化基于地理位置的 Json

javascript - 如何使用 javascript 格式化货币并验证

正则表达式。需要从 SVG 字符串中提取值

javascript - 如何仅在字符串的开头部分查找/替换不区分大小写的?

regex - 微软办公 Access `LIKE` VS `RegEx`

python - 当里面有额外的括号时如何添加右括号

regex - 301 将 pdf 文件重定向到我的新网站