簡體   English   中英

通過RegEx替換Javascript

[英]Javascript Replace via RegEx

我正在嘗試用3個其他字符替換3個字符來構建/屏蔽表單的電子郵件地址。

這僅適用一次或在找到它的第一個實例上起作用:

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

上面的代碼導致:email1 @ domain.com,email2#domain!com | email3#domain!com

經過一番閱讀后,我讀到了有關使用RegEx的知識,這是編碼的一部分,我永遠都不會纏着腦袋:

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

那也不起作用,並且使其與原始var相同。

我究竟做錯了什么?

不要在正則表達式兩邊加上引號。 正則表達式是使用/作為邊界的文字。

此外,您將需要轉義| 因為它有特殊的意義。

最后, .replace不是可轉換的。 它返回結果。

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

使用正則表達式文字 ,您可以省略引號(並且您需要對管道進行轉義):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM