Javascript - 无法使用RegExp进行替换

时间:2012-01-23 03:35:08

标签: javascript

我正在尝试进行Javascript替换(从字符串中删除一些单词),但我需要使用一个变量,所以我正在使用new RegExp(),如下所示,但我无法弄清楚为什么正则表达式不替换单词。当我使用相同的正则表达式并且不使用new RegExp()时,它可以正常工作。

http://jsfiddle.net/HkEjB/

var string = "foo bar foo bar";

// With RegExp
var replace = "foo";
var regex = new RegExp("\b" + replace + " \b|\b " + replace + "\b|^" + replace + "$", 'igm');    
document.write(string.replace(regex, ""));

// Without RegExp
document.write('<br>');
document.write(string.replace(/\bfoo \b|\b foo\b|^foo$/igm, ''));

1 个答案:

答案 0 :(得分:2)

您需要转义反斜杠:http://jsfiddle.net/HkEjB/1/

var string = "foo bar foo bar";

// With RegExp
var replace = "foo";

var regex = new RegExp("\\b" + replace + " \\b|\\b " + replace + "\\b|^" + replace + "$", 'igm');    
document.write(string.replace(regex, ""));