我正在尝试用 x 字符替换电子邮件中的所有句点 - 例如“my.email@email.com”将变为“myxemail@emailxcom”。电子邮件设置为字符串。
我的问题是它不只是替换句号,而是替换每个字符,所以我只得到一串x。
我只需一个句号就可以让它工作,所以我假设我在全局实例部分错了。这是我的代码:
let re = ".";
let new = email.replace(/re/gi, "x");
我也试过
re = /./gi;
new = email.replace(re, "x");
如果有人能阐明我真的很感激,我已经坚持了这么久,似乎无法弄清楚我哪里出错了。
\*\* 编辑:哎呀,我的新变量实际上被称为 newemail,关键字 new 并没有导致问题!
原文由 Rebecca 发布,翻译遵循 CC BY-SA 4.0 许可协议
你的第二个例子是最接近的。第一个问题是您的变量名
new
,它恰好是 JavaScript 的 保留关键字 之一(而是用于构造对象,例如new RegExp
或new Set
)。这意味着您的程序将引发语法错误。此外,由于点(
.
)是正则表达式语法中的特殊字符,您应该将其转义为\.
。否则你最终会得到result == "xxxxxxxxxxxxxxxxxx"
,这是不可取的。