Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过正则表达式替换Javascript_Javascript_Regex_Replace - Fatal编程技术网

通过正则表达式替换Javascript

通过正则表达式替换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 读了一些书之后,我读到了关于使用正则表达

我正在尝试用其他3个字符替换3个字符,以生成/屏蔽表单的电子邮件地址

这只适用于一次或在第一次找到它时:

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,",");