2011-06-11 53 views
1

我有一長串<a>標籤,我想通過它們過濾它們;也就是刪除那些不匹配的。我會根據輸入字段中的文本輸入來篩選它們。正則表達式顯然會搜索標籤內容以匹配輸入字段,但我想知道如何使它更有趣,並且像谷歌的搜索欄那樣主動過濾列表。我想象,一個關鍵功能會觸發正則表達式函數。增量式正則表達式filterer

我不知道該怎麼做的部分是這樣的:

[input field]ArI[/] 

列表:

• ArIes 
• ArIstotle 

即,如何使它檢查列表項的第n個字母。

編輯

這是我迄今爲止,它不工作。

$("input.CardName_Input").keyup(function() { 
    var getPhrase = $(".CardName_Input").val(); 

    new RegExp('^' + getPhrase + '.', 'i'); 

    $("#Results a").each(function() { 
     if (!($(this).val().match(RegExp))) { 
      $(this).addClass("HIDE"); 
     } 
    }) 
}); 

回答

1
+0

我並不擔心特殊字符。我將.val()更改爲.text(),然後完美運行。感謝一堆傢伙!而且,由於您在技術上將腳本放在了我使用的形式中,因此您會看到複選標記。 – 2011-06-12 06:08:55

+0

很好,你得到它的工作。儘管我並不是想偷看複選標記。 – 2011-06-12 06:24:14

2

據我瞭解,你只需要檢查每個列表項的字符串的開始?

那麼你可以使用像/^Ar./i這樣的表達式?

你的情況,你可以建立的正則表達式動態new RegExp('^' + searchString + '.', 'i')

+0

這基本上是正確的想法。 – 2011-06-11 21:36:30

+0

我將如何實現? – 2011-06-12 01:25:05

+0

像這樣http://stackoverflow.com/questions/345194/regular-expression-matching-in-jquery/345806#345806只需用'RegExp'對象代替'/ ... /' – flori 2011-06-12 01:38:13