Javascript 为什么在这段代码中d被替换为@

Javascript 为什么在这段代码中d被替换为@,javascript,regex,Javascript,Regex,我正在将电子邮件中的@符号替换为- var authdata = JSON.parse(getCookie("authData")); var namespace = authdata.Email.replace('@','_'); namespace = namespace.replace(/./, '_'); namespace = namespace.replace(/\./g, '_'); 名称空间为“\u emo\u duosoftware\u com” 这是因为这个正则表达式: n

我正在将电子邮件中的@符号替换为-

var authdata = JSON.parse(getCookie("authData"));
var namespace = authdata.Email.replace('@','_');
namespace = namespace.replace(/./, '_');
namespace = namespace.replace(/\./g, '_');
名称空间为“\u emo\u duosoftware\u com”


这是因为这个正则表达式:

namespace = namespace.replace(/./, '_');

这是一个非全局通配符,请参见此处:

这是因为这个正则表达式:

namespace = namespace.replace(/./, '_');

这是一个非全局通配符,请参见此处:

在正则表达式中将匹配除换行符以外的任何单个字符

问题就在这里

namespace.replace(/./, '_');
若要替换小数点符号,请在其前面加上反斜杠对其进行转义

这两种说法可以结合起来

var namespace = authdata.Email.replace(/[@.]/g, '_');

尽可能多地匹配
@
g
标志)并替换为正则表达式中的

将匹配除换行符以外的任何单个字符

问题就在这里

namespace.replace(/./, '_');
若要替换小数点符号,请在其前面加上反斜杠对其进行转义

这两种说法可以结合起来

var namespace = authdata.Email.replace(/[@.]/g, '_');

尽可能多地匹配
@
g
标志)并替换为

@Sajeetharan可能您正在使用或应该使用字符串replace
.replace('.','''.''''.''.'
@Sajeetharan可能您正在使用或应该使用字符串replace
.replace('.','.''''.'''.''.'.'.'.'.'