在删除搜索词字符串的某个部分时搜索字符串

时间:2013-06-17 17:04:47

标签: jquery html regex

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

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> 

JQuery的:

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

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

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

};

谢谢!

1 个答案:

答案 0 :(得分:1)

我使用replace()通过剥离括号部分来完成它:

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

Eplaination:
[^.*]:不代表任何东西 \(.*\):表示围绕它们的括号

FIDDLE DEMO

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

/[^.*]\(.*/

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

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

请注意,第二次(或多次)出现的括号不是专门处理的(即Some kind of string (112) (22)可能会产生不良行为)。

另请注意,jQuery的text()不接受正则表达式,afaik。