gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-27 23:58:05 24 4
gpt4 key购买 nike

我正在阅读一本 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com