Jquery在所有文本语法正则表达式中替换变量

Dav*_*801 2 javascript regex replace

由于变量rep,这不起作用.请问正确的语法是什么?

var bigtext = 'testing test test test';
var rep = 'test'; 
bigtext = bigtext.replace(/rep/g, "MOO!");
Run Code Online (Sandbox Code Playgroud)

我知道问题在于替换中的正则表达式部分...但是编写它的正确方法是什么?

lon*_*day 6

您需要使用RegExp构造函数构建正则表达式:

var bigtext = 'testing test test test';
var rep = 'test'; 
var regex = new RegExp(rep, 'g');
bigtext = bigtext.replace(regex, "MOO!");
Run Code Online (Sandbox Code Playgroud)

可以在MDN页面上看到此构造函数的文档.请注意,您可能应该确保正则表达式(例如[)中的任何特殊字符都被转义.