替换打字稿中字符串中的所有字符实例?

新手上路,请多包涵

我正在尝试用 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 许可协议

阅读 674
1 个回答

你的第二个例子是最接近的。第一个问题是您的变量名 new ,它恰好是 JavaScript 的 保留关键字 之一(而是用于构造对象,例如 new RegExpnew Set )。这意味着您的程序将引发语法错误。

此外,由于点( . )是正则表达式语法中的特殊字符,您应该将其转义为 \. 。否则你最终会得到 result == "xxxxxxxxxxxxxxxxxx" ,这是不可取的。

 let email = "my.email@email.com"

let re = /\./gi;
let result = email.replace(re, "x");

console.log(result)

原文由 gyre 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题