Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.12.2016, 20:57
Интересующийся
Отправить личное сообщение для Heger Посмотреть профиль Найти все сообщения от Heger
 
Регистрация: 10.12.2011
Сообщений: 10

Подставить в регулярное выражение переменную
Пока составлял пост меня разлогинили и всё писал зря, нигде текст не сохранился, ну да ладно ещё раз.

Нужно переменную id_met подставить в искомую строку re.
dostavka_line_full = 'm5cp67cn43m2cp70007cn0m6cp34cn0m2cp2cn0m2cp8cn10'; //строка в которой ищем re
id_met = '2'; //часть строки которую ищем
//re - строка которую ищем
re = /m2cp(\d+)cn0/g; // так работает
re = '/m' + id_met  + 'cp(\d+)cn0/g'; // не работает
re = new RegExp('m' + id_met + 'cp(\d+)cn0','g'); // не работает
re = new RegExp(/m/ + id_met + /cp(\d+)cn0/g); // не работает
re = /m/ + id_met + /cp(\d+)cn0/g; // не работает

found = dostavka_line_full.match(re);
alert(found)

В dostavka_line_full должно два раза найтись re, как их найти? Сижу целый день не могу разобраться...
Ответить с цитированием
  #2 (permalink)  
Старый 29.12.2016, 21:20
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Heger, строка 6 почти угадал - экранируй слэш.
Ответить с цитированием
  #3 (permalink)  
Старый 29.12.2016, 21:29
Интересующийся
Отправить личное сообщение для Heger Посмотреть профиль Найти все сообщения от Heger
 
Регистрация: 10.12.2011
Сообщений: 10

Сообщение от Rise Посмотреть сообщение
Heger, строка 6 почти угадал - экранируй слэш.
Если не трудно как это должно выглядеть?
Ответить с цитированием
  #4 (permalink)  
Старый 29.12.2016, 21:32
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Heger, \\
Ответить с цитированием
  #5 (permalink)  
Старый 29.12.2016, 22:09
Интересующийся
Отправить личное сообщение для Heger Посмотреть профиль Найти все сообщения от Heger
 
Регистрация: 10.12.2011
Сообщений: 10

Понял, спасибо.
Для тех кто тоже ищет - вот так работает:
id_met = '2';
dostavka_line_full = 'm5cp67cn43m2cp70007cn0m6cp34cn0m2cp2cn0m2cp8cn10';
re = new RegExp('m' + id_met + 'cp(\\\d+)cn0','g');
found = dostavka_line_full.match(re);
alert(found);
Ответить с цитированием
  #6 (permalink)  
Старый 29.12.2016, 22:17
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Heger, а с двумя слэшами не работает что-ли?
Ответить с цитированием
  #7 (permalink)  
Старый 29.12.2016, 22:26
Интересующийся
Отправить личное сообщение для Heger Посмотреть профиль Найти все сообщения от Heger
 
Регистрация: 10.12.2011
Сообщений: 10

Сообщение от Rise Посмотреть сообщение
Heger, а с двумя слэшами не работает что-ли?
Да точно с двумя слэшами тоже работает, тоесть так:
re = new RegExp('m' + id_met + 'cp(\\d+)cn0','g');
Ответить с цитированием
  #8 (permalink)  
Старый 29.12.2016, 22:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Heger
Да точно с двумя слэшами тоже работает
Не с двумя или более, а нужно экранировать то, что используется в шаблонах как спецсимволы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение tata4ka Общие вопросы Javascript 4 15.11.2014 00:56
Регулярное выражение и метод test tsigel Общие вопросы Javascript 3 30.08.2013 13:47
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
Регулярное выражение BorisBritva jQuery 3 15.03.2012 19:07
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29