在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))