正则表达式是否允许包含特殊符号的任意输入?

时间:2019-04-11 19:13:01

标签: javascript

我有以下正则表达式:

rm -Rf ~/.gradle

console.log('Hey yo (W)'.replace(/\s*%s\s*/g, " ").trim());是另一个将格式化为此正则表达式的字符串。它可能是诸如%s之类的“正常”字符序列,也可能包含诸如yo之类的特殊字符。当前,如果将(W)替换为%s,则输出为

(W)

我真正想要的时候

Hey yo ( )

那么我如何支持Hey yo 的任意替换,以使其正确地转义特殊符号,同时仍然支持不带有特殊符号的替换?

2 个答案:

答案 0 :(得分:0)

另一种选择是使用String而不是RegExp。

let variable = {"%s": "(W)"}; // this is just to illustrate.
console.log('Hey yo (W)'.replace(`${variable["%s"]}`, " ").trim());

答案 1 :(得分:0)

您可以使用此Regexp ([[^ \ w \ s]。+ [^ \ w \ s])

console.log('Hey yo (W)'.replace(/([^\w\s].+[^\w\s])/g, " ").trim());