Javascript CSS过滤器正则表达式JS

Javascript CSS过滤器正则表达式JS,javascript,css,regex,filter,Javascript,Css,Regex,Filter,我试图检测一个元素的CSS属性filter是否已经包含一些规则。 但是我的正则表达式从未找到任何匹配项:/saturate\(.....^\)]\/ 这是给你们的演示: var filter=$('div').css('filter'); $('p').eq(0).text(filter.search(/saturate\(.[^\)]\)/)//应该返回非-1的内容 $('p').eq(1).text(filter.search(/contrast\(..[^\)]\)/)//应返回-1 d

我试图检测一个元素的CSS属性
filter
是否已经包含一些规则。 但是我的正则表达式从未找到任何匹配项:
/saturate\(.....^\)]\/

这是给你们的演示:

var filter=$('div').css('filter');
$('p').eq(0).text(filter.search(/saturate\(.[^\)]\)/)//应该返回非-1的内容
$('p').eq(1).text(filter.search(/contrast\(..[^\)]\)/)//应返回-1
div{
滤光片:亮度(1.9)饱和(80%);
}


您的正则表达式中缺少一个
+

var filter=$('div').css('filter');
//V在这里!
$('p').eq(0).text(filter.search(/saturate\(.[^\)]+\)/)//应该返回非-1的内容
$('p').eq(1).text(filter.search(/contrast\(.[^\)]+\/)//应返回-1
div{
滤光片:亮度(1.9)饱和(80%);
}

您应该在regexp中使用
\([^]+\)
而不是
\([^\)]\)

var filter=$('div').css('filter');
$('p').eq(0).text(filter.search(/saturate\([^)]+\)/);//16
$('p').eq(1).text(filter.search(/contrast\([^)]+\)/);//-1
div{
滤光片:亮度(1.9)饱和(80%);
}


使用
\([^]+\)
而不是
\([^\]\)
哦,你不必在
[]
中转义
?@Zenoo:不,不需要转义
。只有
^
\
]
-
需要转义(虽然在某些情况下,
^
-
也可以在字符类中用作文本)。谢谢,我不知道!