我有这个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'), '.')
答案 0 :(得分:1)
/([.?*+^$[\]\\(){}|-])/
是Regular Expression,其中包含捕获组,包含字符集,而字符集又包含具有特殊含义的常见字符在正则表达式中。
函数regexp_quote
接受一个String,并使用转义版本(一个带有前一个反斜杠的版本)全局替换该集合中找到的每个字符实例。 $1
表示使用第一个(也是唯一的)捕获组。
regexp_quote('.?*+^$[\]\\(){}|-')
返回'\.\?\*\+\^\$\[\]\\\(\)\{\}\|\-'
,显示非常明显的字符转义前缀。