Вставить строку в существующий 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+$");