以下是转义特殊字符的代码:
function escapeRegExp(string){
return string.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
}
我如何取消特殊字符以获取原始字符串?
我对使用/和//.
感到困惑答案 0 :(得分: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:我纠正了你原来的功能,正则表达式错了。
答案 1 :(得分:1)
我想,您已经从MDN获取此信息。
您需要还原转义的所有内容是删除\
个字符的每个奇怪的出现。
function unescapeRegExp(string) {
return string.replace(/\\(.)/g, '$1');
}