2014-07-26 29 views
0

如果我沒有爲什麼javascript中的.replace()會替換那個「the」?

var x="the dog then the cat ran"; 
var y=x.replace(/the/g,""); 

那麼y將等於

"dog n cat ran" 

n個將保持具有從那麼字母 「該」 移除(或替換)後。

我該如何防止這種情況發生?

+0

有空格: var y = x.replace(/ \ sthe \ s/g,「」);下面的答案是更好,但使用! – Jordan

+0

請注意,這不是一個真正的JavaScript問題,它是關於爲什麼特定的正則表達式匹配某些文本的基本正則表達式問題。 – nnnnnn

回答

6

您需要添加界樁,像這樣:

var x="the dog then the cat ran"; 
var y=x.replace(/\bthe\b/g,""); 
// y = " dog then cat ran" 

否則,/the/thenbreathethesis等,很容易爲the匹配。 \b需要單詞邊界。

如果擺脫then爲好,試試這個:

var x="the dog then the cat ran"; 
var y=x.replace(/\bthe\S*\b/g,""); 
// y = " dog cat ran" 

爲了擺脫多餘的空間:對的替代每側

var x="the dog then the cat ran"; 
var y=x.replace(/\bthe\S*\b\s*/g,""); 
// y = "dog cat ran" 
+0

單詞邊界+1 – zx81

相關問題