如何在JavaScript正则表达式中替换冒号和星号特殊字符

时间:2018-10-29 20:59:43

标签: javascript regex

我试图用空字符串(“”)替换星号(*)和冒号(:),并且该字符串可以如下所示:

要么:Registration No: already exists*

OR:*Registration No: already exists

因此,我既不希望(*)也不要(:),并且输出应该是Registration No already exists我该如何解决。

尝试如下:

var txt = str.replace(/:\*/ig,"");

请帮助我,谢谢!

2 个答案:

答案 0 :(得分:5)

您的正则表达式匹配:*。您可以使用character class来匹配它们中的任何一个:

var txt = str.replace(/[:*]/g,"");

const strings = [
  "Registration No: already exists*",
  "*Registration No: already exists"
];

strings.forEach((s) => {
  console.log(s.replace(/[:*]/g, ""));
});

答案 1 :(得分:0)

不使用字符类的另一种方法是使用pipealteration来分隔每个组。但是,这要求您转义特殊字符,并且允许组匹配而不是单个字符匹配:

var txt = str.replace(/:|\*/ig, "");