JS регулярное выражение и переменная

Segey
На сайте с 23.08.2005
Offline
404
1182

Есть такое выражение:

strs.match(next_name);

Где жирным выделена переменная. Проблема в том, что нужно описатьвыражение в таком виде:

strs.match(/next_name:=([0-9]+)/);

Но никак не могу заставить его понимать выделенное как переменную, кавычек нет, а если сделать с "\" как с кавычками, тоне выходит, например так:

strs.match(next_name+/:=([0-9]+)/);
strs.match(next_name/:=([0-9]+)/);

Ничего не находит, если вместо переменной ее значение -то все ищется :confused: И в справочникахвсе примеры без переменных.

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
ultrabyte
На сайте с 28.01.2006
Offline
80
#1

А почему внешнее присвоение не сделать?

var next_name="бла-бла";

strs.match(next_name);

За клиента на продвижение, откат 20% (http://qjp.ru/index.php/2009-03-04-06-46-45)
Segey
На сайте с 23.08.2005
Offline
404
#2

ultrabyte,

А как именно по записи?

Через

next_name = /:/+next_name;

и

next_name = /:/next_name;

не хочет

Проблема в том, что в справочниках пишут что-то вроде "При составлении выражения вместо ' нужно использовать /". Например

reg = /[a-z]+/

Kolyaj
На сайте с 28.03.2006
Offline
69
#3

Segey, при краткой записи регулярного выражения /.../ внутри него нельзя использовать переменные. Для этого нужно использовать явный вызов конструктора RegExp

strs.match(new RegExp(next_name + ':=([0-9]+)'))

Второй параметр у RegExp - список модификаторов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий