0

我正在尝试用 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 相同。

我究竟做错了什么?

4

3 回答 3

4

不要在正则表达式周围加上引号。/正则表达式是用作边界的文字。

此外,您将需要转义,|因为它具有特殊含义。

最后,.replace不是变革性的。它返回结果。

email = email.replace(/#/g,'@').replace(/!/g,'.').replace(/\|/g,',');
于 2012-09-25T22:29:11.080 回答
1

Using regex literals, you omit the quotes (and you'll need to escape the pipe):

email.replace(/#/g,"@").replace(/!/g,".").replace(/\|/g,",");
于 2012-09-25T22:28:49.820 回答
0
email = "email1#domain!com|email2#domain!com|email3#domain!com";
email=email.replace(/#/g,"@").replace(/!/g,".").replace(/\|/g,",");
于 2012-09-25T22:34:10.257 回答