2012-01-23 27 views
0

我試圖做一個Javascript替換(從字符串中刪除一些單詞),但我需要一個變量來使用,所以我使用new RegExp()但如下所示不知道爲什麼正則表達式不能代替單詞。當我使用相同的正則表達式,並且不使用new RegExp()它工作正常。Javascript - 在使用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, '')); 

回答

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, "")); 
+0

當然:),我新它必須是簡單的東西。謝謝一堆。 –