我想要一种从字符串生成正则表达式的方法,该字符串只匹配原始字符串。
即
myRegexGenerator('babies/canfly?a=probably-not');
// returns an equivalent to /^babies\/canfly\?a=probably-not$/
答案 0 :(得分:1)
你基本上只需要转义任何特殊的正则表达式字符。然后创建一个RegExp对象。
var input = 'babies/canfly?a=probably-not';
new RegExp(input.replace(/[^$]/g, "\$&"));
显然,在使RegExp变得越来越强大之前,您捕获并逃脱的特殊代码就越多。您可以使用regular-expressions.info之类的引用来确保涵盖所有内容。或者你可以覆盖你认识的任何角色。