为什么“”不适用于组合serval正则表达式?

我正在为 JavaScript 开发正则表达式。如果我这样写,正则表达式就可以工作:

let print = res.replace("[0;32m"," ").replace("[0m"," ").replace("[0;31m"," ");

但是,我想将这三个组合成一个正则表达式,它不起作用。我的代码有什么问题?

// try this
let print = res.replace("[0;32m"|"[0m"|"[0;31m)", " ");
// and try this,too
let print = res.replace(("[0;32m")|("[0m")|("[0;31m"), " ");

感谢您的帮助。

回答

这有两个主要原因:

  • 您没有使用正则表达式。您正在使用普通字符串。
  • 您没有| 正则表达式中使用,甚至没有在字符串中使用。在这种情况下,它是一个按位或运算符。

如果您想要一个正则表达式,那么您需要使用正则表达式语法编写一个(因此您需要标记要进行 ORing 的组并转义特殊字符)。

const input = "test[;32mtest";
const result = input.replace(/(?:[;32m)|(?:[;0m)|(?:[;31m)/, " ");
console.log(result);


以上是为什么“”不适用于组合serval正则表达式?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>