Как передать переменную в регулярное выражение в jQuery/Javascript
Есть ли способ передать переменную в регулярное выражение в jQuery/Javascript?
Я хочу сделать что-то вроде:
var variable_regex = "bar";
var some_string = "foobar";
some_string.match(/variable_regex/);
В Ruby вы сможете:
some_string.match(/#{variable_regex}/)
Найден полезный пост:
Как я могу конкретизировать литералы регулярных выражений в JavaScript?
Ответы
Ответ 1
Это легко:
var variable_regex = "bar";
var some_string = "foobar";
some_string.match(variable_regex);
Просто потеряйте //. Если вы хотите использовать сложные регулярные выражения, вы можете использовать конкатенацию строк:
var variable_regex = "b.";
var some_string = "foobar";
alert (some_string.match("f.*"+variable_regex));
Ответ 2
Javascript не поддерживает интерполяцию, такую как Ruby - вы должны использовать конструктор RegExp
:
var aString = "foobar";
var pattern = "bar";
var matches = aString.match(new RegExp(pattern));