Javascript CSS过滤器正则表达式JS
我试图检测一个元素的CSS属性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
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:不,不需要转义(
和)
。只有^
、\
、]
和-
需要转义(虽然在某些情况下,^
和-
也可以在字符类中用作文本)。谢谢,我不知道!