簡體   English   中英

在jQuery的正則表達式中使用變量

[英]use variable in regular expression in jquery

對某些專家來說,這可能是一個非常容易的問題,但對我而言似乎很難。 我想在正則表達式的模式中使用variable

$("#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條件下不起作用。 該代碼的目的是搜索一個以filter變量的值開頭的單詞,即A,B等。我該怎么做?

提前致謝。

用這個 :

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

請參閱RegExp文檔

如果您有許多檢查點,則可能應該在進入循環之前構建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++;
     }
});

使用構造函數可以實現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++;
         }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM