1

専門家にとっては非常に簡単な質問かもしれませんが、私には難しいようです。variable正規表現のinパターンを使いたいです。

$("#srcbtn .btnPage").live("click",function(){
     var filter = $(this).val(), count = 0;

     $(".checkpoint").each(function () {
         if ($(this).find(".chpdetails .chkpname").text().search(new RegExp(/\b filter /i)) < 0) {
               $(this).hide();
         } else {
               $(this).show();
               count++;
         }
    });
});

ただし、フィルター変数は条件では機能しませんif。このコードの目的は、変数の値、つまり A、B などで始まる単語を検索するfilterことです。どうすればこれを行うことができますか?

前もって感謝します。

4

2 に答える 2

4

これを使って :

new RegExp("\\b" + filter, 'i')

RegExp のドキュメントを参照してください

多くのチェックポイントがある場合は、反復ごとに構築するのではなく、ループに入る前に正規表現オブジェクトを構築する必要があります。

 var r = new RegExp("\\b" + filter, 'i');
 $(".checkpoint").each(function () {
     if ($(this).find(".chpdetails .chkpname").text().search(r) < 0) {
           $(this).hide();
     } else {
           $(this).show();
           count++;
     }
});
于 2013-01-23T18:52:18.493 に答える
1

コンストラクターを使用すると、RegExpでこれが可能になります

$("#srcbtn .btnPage").live("click",function(){
     var filter = $(this).val(), count = 0;

     $(".checkpoint").each(function () {
         if ($(this).find(".chpdetails .chkpname").text().search(new RegExp("\\b" + filter, "i")) < 0) {
               $(this).hide();
         } else {
               $(this).show();
               count++;
         }
    });
});
于 2013-01-23T18:57:53.807 に答える