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

时间:2017-04-09 19:28:04

标签: javascript string typescript replace global

我正在尝试用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并没有导致问题!

2 个答案:

答案 0 :(得分:21)

你的第二个例子是最接近的。第一个问题是您的变量名称 new ,它恰好是JavaScript reserved keywords之一(而是用于构建对象,如{{1} }或new RegExp)。这意味着您的程序将抛出语法错误。

此外,由于点(new Set)是正则表达式语法中的特殊字符,因此应将其作为.进行转义。否则你最终会得到\.,这是不可取的。



result == "xxxxxxxxxxxxxxxxxx"




答案 1 :(得分:0)

您可以尝试对我有用的split()join()方法。 (对于普通字符串文本) 实施和理解很简短。 下面是一个示例。

let email = "my.email@email.com";
email.split('.').join('x');

因此,它将用.替换您所有的x。因此,在上面的示例之后,email变量变为myxemail@gmailxcom