我想删除2014年& 2015年使用Regex办理入住和退房手续 -
我尝试使用containsRegex,但我想我做错了什么:
$("option:containsRegex(/^((2014)|(2015))$/)").remove();
以下是示例代码:
<select name="check_in" class="required">
<option value="">Year</option>
<option value="2013" selected="selected">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
</select>
<select name="check_out" class="required">
<option value="">Year</option>
<option value="2013" selected="selected">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
</select>
我可以这样做:
$('option:contains("2014")').remove();
$('option:contains("2015")').remove();
但我希望能够使用正则表达式,因为真正的文件比那更复杂.. 这是小提琴:http://jsfiddle.net/PJjGb/1/所以你可以试试。
总结一下,我想删除'select'元素的某些'选项'。 并且能够通过使用正则表达式选择哪个选项 在此示例中,使用签入和签出中的正则表达式删除选项“2014”和“2015”。 谢谢。 (这里我没有正则表达式,http://jsfiddle.net/PJjGb/)
答案 0 :(得分:4)
不确定为什么需要一个正则表达式,但这里是:
$('option').filter(function() {
return /(2014|2015)/.test(this.value);
}).remove();
答案 1 :(得分:-2)
正则表达式本身应该像/(2014|2015)/
为什么在使用简单的css进行简单的jQuery调用时才使用正则表达式,如下所示:
$('option[value*=2014], option[value*=2015]').remove();
详细了解CSS Selectors
或者adeneo建议,如果你坚持使用RegEx,你可以使用jQuery的.filter()
方法:
$('option').filter(function(i) { return /(2014|2015)/.test(this.value); }).remove();
| OR | 如果您想要对文字进行测试:
$('option:contains(2014), option:contains(2015)').remove();
使用
.filter()
| OR |
$('option').filter(function(i) { return /(2014|2015)/.test($(this).text()); }).remove();
| OR | 对于完整组合测试 TEXT &amp;&amp; VALUE ,我建议使用.filter()
方法agian,并使用||
语句:
$('option').filter(function(i) { return /(2014|2015)/.test(this.value) || /(2014|2015)/.test($(this).text()); }).remove();