zwo*_*wol 20 javascript regex quotemeta
在Perl正则表达式中,您可以使用\Q
和包围子表达式,\E
以指示您希望将子表达式匹配为文字字符串,即使其中存在元字符.您还可以使用quotemeta
在字符串中插入正确数量的反斜杠的函数,这样,如果随后将该字符串插入到正则表达式中,则无论其内容是什么,它都将按字面匹配.
Javascript(在主流浏览器中部署)是否有任何内置的等价物?我可以自己写得很好,但我想知道我是否需要打扰.
Joe*_*lor 17
没有这样的内置功能.
我建议你研究互联网上可用的众多正则表达式转义函数,而不是实现自己的.
该页面提出了以下解决方案(由Colin Snover提供):
RegExp.escape = function(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
}
Run Code Online (Sandbox Code Playgroud)
或建议使用XRegExp库.
据我所知,Quotemeta本身并没有实现,但几个月前我就用这个:
function quotemeta (str) {
// http://kevin.vanzonneveld.net
// + original by: Paulo Freitas
// * example 1: quotemeta(". + * ? ^ ( $ )");
// * returns 1: '\. \+ \* \? \^ \( \$ \)'
return (str + '').replace(/([\.\\\+\*\?\[\^\]\$\(\)])/g, '\\$1');
}
Run Code Online (Sandbox Code Playgroud)
来自http://phpjs.org/functions/quotemeta:496
归档时间: |
|
查看次数: |
5122 次 |
最近记录: |