Вставить строку в существующий RegExp в Javascript?
Возможный дубликат:
передать переменную в regexp в javascript
У меня есть переменная:
resource = "user";
Я хочу вставить эту переменную в предопределенный RegExp (заменяя переменную ниже):
/^\/variable\/\d+$/
Как я могу это сделать?
Ответы
Ответ 1
Используйте конструктор RegExp
:
var re = new RegExp("^\\/" + resource + "\\/\\d+$");
Обратите внимание, что вам нужно избегать разделителей /
дважды, один раз для регулярного выражения и один раз для объявления строки.
Вы также можете использовать некоторую функцию escape для цитирования строк, которые будут использоваться в регулярных выражениях:
function quote(str) {
return str.replace(/(?=[\/\\^$*+?.()|{}[\]])/g, "\\");
}
Это приводит нас к следующему:
var re = new RegExp("^\\/" + quote(resource) + "\\/\\d+$");
Ответ 2
Вы должны это сделать.
var resource = "user";
var regex = new RegExp("^\/"+resource+"\/\d+$", "g");
Затем вы можете передать объект RegExp таким функциям, как myString.replace()
, или вызвать метод exec()
самого объекта RegExp.
Ответ 3
Вы можете использовать метод new RegExp
:
var resource = "user";
new RegExp("^\/"+resource+"\/\d+$");