2013-10-21 55 views
0
var string = "This is a string"; 
var key = "Th"; 
var patt = new RegExp(/\b key /, "i"); 

if(patt.test(string)){ 
    alert("true"); 
} 

我怎樣才能逃避\ B上我可以使用key變量?如何在RegExp中使用變量?

在此先感謝!

+0

也不會轉回去'indexOf'夠嗎? '(string.indexOf(key)> -1)'?見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf甚至https://developer.mozilla.org/en-US/docs/Web/JavaScript/參考/ Global_Objects /字符串/包含 – Stefan

+0

可能重複[你怎麼傳遞給正則表達式的JavaScript變量?(http://stackoverflow.com/questions/494035/how-do-you-pass-a-variable-對一個正則表達式的JavaScript) –

回答

3

使用正則表達式的構造函數時,不要使用正則表達式文本。

當你想要一個\在字符串文字中,你必須將其轉義爲\\

下面的代碼:

var patt = new RegExp("\\b " + key + " ", "i"); 
+1

我還不能肯定,但不要你仍然需要分隔符? –

+1

如果你的意思是'/',它們就是定義一個正則表達式文字的東西。所以不,當你想使用變量時你不能使用它們。 –

+0

謝謝!它工作正常。我只是刪除一些空間:) –