2012-03-07 90 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

相关问题