Javascript 从只匹配自身的字符串生成正则表达式
我想要一种从只匹配原始字符串的字符串生成正则表达式的方法 i、 eJavascript 从只匹配自身的字符串生成正则表达式,javascript,regex,ecmascript-6,Javascript,Regex,Ecmascript 6,我想要一种从只匹配原始字符串的字符串生成正则表达式的方法 i、 e 基本上只需要转义任何特殊的正则表达式字符。然后创建一个RegExp对象 var input = 'babies/canfly?a=probably-not'; new RegExp(input.replace(/[^$]/g, "\$&")); 显然,在生成RegExp之前捕获和转义的特殊代码越多,它对不同输入的鲁棒性就越强。你可以用一个推荐人来确保你涵盖了一切。或者,您可以只覆盖您知道的任何可能的字符。这听起来很奇怪
基本上只需要转义任何特殊的正则表达式字符。然后创建一个RegExp对象
var input = 'babies/canfly?a=probably-not';
new RegExp(input.replace(/[^$]/g, "\$&"));
显然,在生成RegExp之前捕获和转义的特殊代码越多,它对不同输入的鲁棒性就越强。你可以用一个推荐人来确保你涵盖了一切。或者,您可以只覆盖您知道的任何可能的字符。这听起来很奇怪。你打算做什么?只做它,然后添加
^
和$
。制作这个正则表达式的目的是什么?要么照georg说的做,要么直接比较字符串而不使用正则表达式,如果后者在你写的任何代码中都是可行的(我相信你有你的理由)。要在其他字符串中搜索字符串,可以使用indexOf()等方法,如果需要计算字符串匹配的时间,可以使用循环和indexOf()轻松完成,因为可以将起始索引作为第二个参数。
var input = 'babies/canfly?a=probably-not';
new RegExp(input.replace(/[^$]/g, "\$&"));