2013-10-16 58 views
1

我一直在搜索以找到正確的方式來使用var作爲正則表達式的一部分 。 這個想法是獲取頁面上的每個可搜索字段,並檢查文本是否包含搜索詞,如果是,則替換文本的該部分並將其包裝在樣式跨度中。 這是無法正常工作的代碼部分,"/\\"+src+"/gi",使用var將字符串傳遞到正則表達式

$('.srch').each(function() { 

     var txt = $(this).text(), 
      src = $('#Srch_Srch_txt').val(); 

     var s = txt.replace("/\\"+src+"/gi", '<span class=highlight>' + src + '</span>'); 

     $(this).html(s); 

    }) 

謝謝你在前進, 意志。

+0

你想字符串操作:'新的RegExp(...)' –

+0

http://stackoverflow.com/q/494035/235710 –

回答

1

您可以構建一個動態的正則表達式做使用Javascript's RegExp object

var re = new RegExp("ab" + src, "i"); // assuming src is a string variable 
+0

小令人困惑,但我設法讓你的例子工作... 'var re = new RegExp(src,「gi」); var s = txt.replace(re,''+ src +'');'爲我工作。 – wf4

+0

很高興解決。 – anubhava

相關問題