在javascript中取消多个值

时间:2014-12-19 11:54:46

标签: javascript regex

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

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

我如何取消特殊字符以获取原始字符串?

我对使用/和//.

感到困惑

2 个答案:

答案 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');
}