我需要使用 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);
}
这段代码有什么问题?请指导我。
Use the \
用于转义在正则表达式中具有特殊含义的字符。
要使其自动化,您可以使用以下命令:
function escapeRegExp(text) {
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
}
Update:现在有一个提议标准化此方法,可能在 ES2016 中:https://github.com/tc39/proposal-regex-escaping https://github.com/tc39/proposal-regex-escaping
Update:上述提案被拒绝(但 2023 年重写正在进行中),所以现在继续自己实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)