2014-01-25 118 views
5

我試圖刪除所有的破折號和字符串下劃線String.prototype.replace(),但它不工作,我不知道爲什麼。我的代碼:String.prototype.replace()刪除破折號和下劃線

var str = "dash-and_underscore"; 
str = str.replace(/_|\-/, " "); 
console.log(str); 

輸出:

"dash and_underscore" 
在Chrome控制檯

由於|的行爲像OR操作者,我做錯了什麼?我試着解決方案here,但它沒有工作,還是我太愚蠢理解 - 這是一個選擇;)

回答

19

試試這個:

str = str.replace(/[_-]/g, " "); 

[..]定義字符類
g意味着全球研究

(你可以用一個量詞/[_-]+/g以一次刪除多個連續的字符它寫。)

str = str.replace(/_|-/g, " "); 

這是正確的太多,但速度較慢。請注意,破折號不需要從字符類中跳出,因爲它不是特殊字符。

+0

哦,facepalm對我來說......「全球比賽」旗幟。謝謝@ casimir-et-hippolyte! –

相關問題