2016-08-22 19 views
-4

我想要一種方法來從只匹配原始字符串的字符串中生成正則表達式。從一個只匹配自己的字符串中創建正則表達式

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

這聽起來很奇怪。你打算做什麼? – str

+3

只需[escape](http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript)並添加'^'和'$'。 – georg

+2

製作這個正則表達式的目的是什麼? – anubhava

回答

1

你基本上只需要逃避任何特殊的正則表達式字符。然後創建一個RegExp對象。

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

很顯然,在使RegExp更加健壯之前,您可以捕捉到更多特殊的代碼,從而避免不同的輸入。您可以使用像regular-expressions.info這樣的參考文件來確保您覆蓋了所有內容。或者,您可以只覆蓋您所知道的任何可能的字符。

相關問題