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> 

JQuery:

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, '');

説明:
[^.*]: NOT を
\(.*\)意味します : 括弧で囲まれたものを意味します

フィドルのデモ

最適化の余地: 最後の括弧を削除して\)、最初の括弧以降がすべて削除されるようにします。

/[^.*]\(.*/

または、括弧の間に数字を強制して、括弧が実際のテキストに属していないことを確認してください。

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

括弧の 2 回目 (または複数回) の出現は特に処理されないことに注意してください (つまりSome kind of string (112) (22)、望ましくない動作をする可能性があります)。

また、jQuerytext()は正規表現を使用しないことに注意してください。

于 2013-06-17T18:09:19.657 に答える