在javascript中取消对多个值的回避

在javascript中取消对多个值的回避,javascript,regex,Javascript,Regex,以下是转义特殊字符的代码: function escapeRegExp(string){ return string.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1"); } 如何取消特殊字符的转换以获得原始字符串 我对/和//的用法感到困惑。这很简单,您可以使用另一个函数删除\字符 // Use this to escape function escapeRegExp(string){ return string.replace(/([\.\*

以下是转义特殊字符的代码:

function escapeRegExp(string){
  return string.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
}
如何取消特殊字符的转换以获得原始字符串


我对/和//的用法感到困惑。

这很简单,您可以使用另一个函数删除
\
字符

// Use this to escape
function escapeRegExp(string){
    return string.replace(/([\.\*\+\?\^\$\{\}\(\)\|\[\]\/\\])/g, "\\$1");
}

// And this to unescape
function unescapeRegExp(string) {
    return string.replace(/\\([\.\*\+\?\^\$\{\}\(\)\|\[\]\/\\])/g, "$1")
}

// EXAMPLE:
escapeRegExp(".?[]");
> "\.\?\[\]"

unescapeRegExp("\.\?\[\]");
> ".?[]"

PS:我纠正了你原来的函数,正则表达式是错误的。

我想,你是从

要恢复转义,只需删除
\
字符的每一个奇数

function unescapeRegExp(string) {
    return string.replace(/\\(.)/g, '$1');
}

从包含原始字符串和转义版本的函数返回一个数组怎么样?我有一种强烈的感觉,这是一个。你想要它做什么?这将取消任何字符的转义。OP要求使用一个函数来取消特殊字符的转义。他希望从转义版本中获取原始字符串。因此
s===unescapeRegExp(escapeRegexp(s))