1

我试图找到一个字符串,但通过正则表达式从我的搜索中删除了字符串的某个部分。我有一个带有标签的复选框,我正在尝试搜索与标签具有相同值但没有标签字符串的一部分的链接(用括号括起来的值)。在此之后,链接应该被隐藏。这是我到目前为止所拥有的:

HTML:

<input type="checkbox" name="sector1" />
<label for="sector1">Some kind of string (22)</label>
<a class="select-filter-option">Some kind of string</a> 

查询:

if (!$(this).is(':checked')) {

    var searchType = $(this).next().text(/\(.*?\)/g);

    $('.search-filter-wrap a:contains(' + searchType + ')').hide();

};

谢谢!

4

1 回答 1

1

我曾经replace()通过剥离括号部分来实现这一点:

var searchType = $("input").next().text().replace(/[^.*]\(.*\)/g, '');

Eplaination:
[^.*]: 表示 NOT 任何东西
\(.*\): 表示任何带括号的东西

小提琴演示

优化空间:删除最后一个括号\),以便删除第一个括号之后的所有内容。

/[^.*]\(.*/

或者通过在括号之间强制插入数字来确保括号不属于实际文本:

/[^.*]\([0-9]+\)/g

请注意,括号的第二次(或多次)出现没有特别处理(即Some kind of string (112) (22)可能会产生不希望的行为)。

另请注意,jQuerytext()不采用正则表达式,afaik。

于 2013-06-17T18:09:19.657 回答