2012-09-25 69 views
0

我試圖用3個其他字符替換3個字符來構建/屏蔽表單的電子郵件地址。Javascript替換爲正則表達式

這僅適用一次或發現它的第一個實例:

email = "email1#domain!com|email2#domain!com|email3#domain!com"; 
email.replace("#","@").replace("!",".").replace("|",","); 

上面的代碼產生了:!@ EMAIL1 domain.com,EMAIL2#域名COM | EMAIL3#域名COM

一些閱讀後,我看了有關使用正則表達式是編碼我永遠不能繞到我的頭部分:

email.replace("/#/g","@").replace("/!/g",".").replace("/|/g",","); 

這並沒有工作,要麼離開它原來一樣的變種。

我在做什麼錯?

回答

4

不要把周圍的正則表達式的報價。正則表達式是使用/作爲邊界的文字。

此外,您將需要跳過|,因爲它有特殊的含義。

最後,.replace沒有變革性。它返回結果。

email = email.replace(/#/g,'@').replace(/!/g,'.').replace(/\|/g,','); 
+0

謝謝 - 將接受這個答案時,我可以在幾分鐘之內! –

1

使用regex literals,您省略了引號(和你需要躲避管):

email.replace(/#/g,"@").replace(/!/g,".").replace(/\|/g,","); 
0
email = "email1#domain!com|email2#domain!com|email3#domain!com"; 
email=email.replace(/#/g,"@").replace(/!/g,".").replace(/\|/g,",");