我需要使用Java脚本转义正则表达式特殊字符。如何实现此目的?
感谢您的快速答复。但是我需要转义所有正则表达式的特殊字符。我已经尝试通过此代码进行操作,但是我无法实现结果。
RegExp.escape=function(str)
{
if (!arguments.callee.sRE) {
var specials = [
'/', '.', '*', '+', '?', '|',
'(', ')', '[', ']', '{', '}', '\\'
];
arguments.callee.sRE = new RegExp(
'(\\' + specials.join('|\\') + ')', 'gim'
);
}
return str.replace(arguments.callee.sRE, '\\$1');
}
function regExpFind() {
<%--var regex = new RegExp("\\[munees\\]","gim");--%>
var regex= new RegExp(RegExp.escape("[Munees]waran"));
<%--var regex=RegExp.escape`enter code here`("[Munees]waran");--%>
alert("Reg : "+regex);
}
我对此代码有何疑问?请指导我。
使用该\
字符可以转义在正则表达式内具有特殊含义的字符。
要使其自动化,可以使用以下命令:
function escapeRegExp(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}
更新:现在有一个建议可以将此方法标准化,可能在ES2016中:https : //github.com/benjamingr/RegExp.escape
更新:上述建议已被拒绝,因此如果需要,请自己继续实施。
使用反斜杠可转义字符。例如:
/\\d/
这将匹配\ d而不是数字字符
与\
您一起逃脱特殊字符
将特殊字符转义为文字,将文字字符转义为特殊。
例如:
/\(s\)/
匹配'(s)',同时/(\s)/
匹配任何空格并捕获匹配。
本文地址:http://javascript.askforanswer.com/ruheshiyongjavascriptzhuanyizhengzebiaodashiteshuzifuzhongfu.html
文章标签:javascript , regex
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
文章标签:javascript , regex
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!