这个Javascript函数regexp_quote的目的是什么?

时间:2016-03-09 18:26:56

标签: javascript

我有这个Javascript我发现并且必须使用但我不明白它在做什么。具体来说,是regexp_quote()函数。任何人都可以帮助我理解它会在这里尝试做什么?它似乎什么都不做,但可能会有某种情况,它实际上做了什么。

function replace(input, pattern, flags, str){

    return input.replace(new RegExp(regexp_quote(pattern), flags), str);
}
function regexp_quote(str) {
     return str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
 }

var dateTime = "2016-03-09T13:18:21-05:00"
dateTime.replace(new RegExp(regexp_quote(':'), 'g'), '.')

1 个答案:

答案 0 :(得分:1)

/([.?*+^$[\]\\(){}|-])/Regular Expression,其中包含捕获组,包含字符集,而字符集又包含具有特殊含义的常见字符在正则表达式中。

函数regexp_quote接受一个String,并使用转义版本(一个带有前一个反斜杠的版本)全局替换该集合中找到的每个字符实例。 $1表示使用第一个(也是唯一的)捕获组。

regexp_quote('.?*+^$[\]\\(){}|-')返回'\.\?\*\+\^\$\[\]\\\(\)\{\}\|\-',显示非常明显的字符转义前缀。