2011-03-01 83 views
1

我想構建一個REGEXP,它匹配所有包含單詞的結果,該單詞在變量中。 這是我的代碼:如何從變量生成正則表達式

function search(buscar){   
    $(".main h2 a").each(function(index) { 
     var rege = /^+buscar+$/; //LINE THAT MUST BE CHANGED*** 
     if(rege.test($(this).text())){ 
      alert($(this).text()); 
     }  
    }); 
} 
+2

這更是一個標準的JavaScript問題,不是嗎? – 2011-03-01 22:52:16

回答

4
var rege = new RegExp('^' + buscar + '$'); 

var rege = new RegExp('^' + buscar.replace(/([.?*+^$[\]\\(){}-])/g, '$1') + '$'); 

,如果有在buscar傳遞正則表達式元字符的任何機會,而你不想讓他們充當這樣的。

當然,值得注意的是,如果buscar中沒有正則表達式元字符,或者我們將其轉義,我們正在構造一個正則表達式,它執行與==運算符完全相同的測試。

順便說一句,沒有關於這條線的jQuery;它是香草JavaScript。