从只匹配自身的字符串创建一个正则表达式

时间:2016-08-22 08:19:37

标签: javascript regex ecmascript-6

我想要一种从字符串生成正则表达式的方法,该字符串只匹配原始字符串。

myRegexGenerator('babies/canfly?a=probably-not');
// returns an equivalent to /^babies\/canfly\?a=probably-not$/

1 个答案:

答案 0 :(得分:1)

你基本上只需要转义任何特殊的正则表达式字符。然后创建一个RegExp对象。

var input = 'babies/canfly?a=probably-not';
new RegExp(input.replace(/[^$]/g, "\$&"));

显然,在使RegExp变得越来越强大之前,您捕获并逃脱的特殊代码就越多。您可以使用regular-expressions.info之类的引用来确保涵盖所有内容。或者你可以覆盖你认识的任何角色。