2012-03-07 95 views
0

我有一個文本字符串,它具有所選文本的值。我喜歡在給定的文本分區中對此文本進行替換()。使用字符串的正則表達式搜索

,所以我知道我能做到這一點與以下:

myelement.replace(/foo/g, 'bar');

但是我需要我的字符串即做到這一點:

myelement.replace(/*mystring*/g, 'bar');

所以,我想:

mystring = '/'+mystring+'/g'; 
myelement.replace(mystring, 'bar'); 

哪個沒有工作,所以我嘗試(我知道是行不通的):

所以

myelement.replace(/+mystring+/g, 'bar');

我怎樣才能做到這一點?

我編寫的東西了爲你們在的jsfiddle - >HELP ME PLEASE!

+0

regSt = new RegExp(st,'g'); 

更多信息取代順便說一句,'$( '#myelement')'將返回一個jQuery對象,不是一個字符串。如果您想要替換元素的內容,請查看'.html()'和'.text()'方法:http://api.jquery.com/ – 2012-03-07 11:51:08

+0

您需要創建一個新的RegExp ()' – elclanrs 2012-03-07 11:51:48

+0

@Felix Kling感謝隊友。我錯過了在問題中輸入的內容(現在被修正)。這在jsfiddle例子中是正確的。 – Alex 2012-03-07 11:53:58

回答

2

http://jsfiddle.net/2rG2V/

的變化是使用new RegExp(st, "g"),而不是創建的字符串像之前。 /test/g只是創建RegExp對象的快捷方式。

+0

感謝您的回答,我檢查[另一個答案] http://stackoverflow.com/questions/494035/how-do-you-pass-a-variable-to-a-regular-expression @Felix Kling提醒我的JavaScript。所以我會盡可能地接受你的答案。非常感謝菲利克斯。 – Alex 2012-03-07 11:58:53

+0

是的,我沒有注意到,當我寫這個答案時,費利克斯指出了一個騙局。 – Chris 2012-03-07 12:00:14

0
eval('myelement.replace(/' + mystring + '/g, "bar");'); 
+0

呃! '的eval()'?這不像那個禁止的蘋果嗎? – elclanrs 2012-03-07 11:58:53

相關問題