2

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

var bigtext = 'testing test test test';
var rep = 'test'; 
bigtext = bigtext.replace(/rep/g, "MOO!");

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

4

1 回答 1

7

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

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

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

于 2012-08-14T14:18:05.173 回答