2015-10-20 40 views
1

嗨,我有以下场景。 我有工作正则表达式,但不能将它传递给jQuery选择器。 我正在尝试关注。将正则表达式传递给JQuery Selector

$("#prefix_[\d]{1, 2}_postfix")

我的元素有ID如下 prefix_10_postfix prefix_1_postfix

请指引我。

+0

这里请注意,在正则表达式'[\ d] {1,2}'可以用作'\ d {1,2}',没必要的课堂和空间 – Tushar

回答

2

您可以使用的起始和属性数值选择结束

$('[id^="prefix_"][id$="_postfix"]') 

这将选择所有的ID与prefix_开始,以_postfix结束的元素。


如果该页面包含了很多元素的ID与prefix_开始,以_postfix结束但不匹配,在它们之间应该是一个或两个数字,前的标准。 <div id="prefix_tushar_postfix"></div>,选择器的开始和结束都不起作用。在这种情况下,filter可以与属性选择器结合使用。

Demo

var regex = /^prefix_\d{1,2}_postfix$/; 
 

 
// Narrow down elements by using attribute starts with and ends with selector 
 
$('[id^="prefix_"][id$="_postfix"]').filter(function() { 
 
    
 
    // filter the elements that passes the regex pattern 
 
    return regex.test($(this).attr('id')); 
 
}).css('color', 'green');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div id="prefix_1_postfix">prefix_1_postfix</div> 
 
<div id="prefix_123_postfix">prefix_123_postfix</div> 
 
<div id="prefix_tushar_postfix">prefix_tushar_postfix</div> 
 
<div id="prefix__postfix">prefix__postfix</div> 
 
<div id="prefix_11_postfix">prefix_11_postfix</div> 
 
<div id="prefix_aa_postfix">prefix_aa_postfix</div>

相关问题