通过正则表达式替换Javascript
我正在尝试用其他3个字符替换3个字符,以生成/屏蔽表单的电子邮件地址 这只适用于一次或在第一次找到它时:通过正则表达式替换Javascript,javascript,regex,replace,Javascript,Regex,Replace,我正在尝试用其他3个字符替换3个字符,以生成/屏蔽表单的电子邮件地址 这只适用于一次或在第一次找到它时: email = "email1#domain!com|email2#domain!com|email3#domain!com"; email.replace("#","@").replace("!",".").replace("|",","); 上述代码导致:email1@domain.com,email2#域!com | email3#域!com 读了一些书之后,我读到了关于使用正则表达
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",",");
这也不起作用,使其与原始var保持相同
我做错了什么?使用,您省略了引号(需要跳出管道):
使用,可以省略引号(并且需要转义管道):
不要在正则表达式周围加引号。正则表达式是使用
/
作为边界的文本
此外,还需要对|
进行转义,因为它有特殊的含义
最后,.replace
并不是一种变革。它返回结果
email = email.replace(/#/g,'@').replace(/!/g,'.').replace(/\|/g,',');
不要在正则表达式周围加引号。正则表达式是使用
/
作为边界的文本
此外,还需要对|
进行转义,因为它有特殊的含义
最后,.replace
并不是一种变革。它返回结果
email = 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,",");