2016-08-22 2 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, чтобы убедиться, что вы все покрываете. Или вы можете просто накрыть все, что вам известно.

Смежные вопросы