Javascript.RU

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

как вставить переменную в правило регулярки
есть пример не могу правильно вставить переменную в правило регулярки
var month = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря',
        'январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь'
    ];
    var monthList =  month.join("|");

    var myString = "12.03.04 июнь 10:00";
    var pattern = /([0-9]{1,4}|monthList)/gi;
    console.log('d');
    var match;
    while (match = pattern.exec(myString)){
        console.log('Match: "' + match[0] + '" first group: -> "' + match[1] + '" second group -> ' + match[2]);
    }
в правило /([0-9]{1,4}|monthList)/gi; вместо monthList нужно вставить переменную. не могу понять как это сделать. Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2017, 11:58
Аспирант
Отправить личное сообщение для prog77 Посмотреть профиль Найти все сообщения от prog77
 
Регистрация: 05.07.2017
Сообщений: 57

переменную monthList))
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2017, 12:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

prog77,
var month = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря',
        'январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь'
    ];
var monthList =  month.join("|");
var pattern  = new RegExp("[0-9]{1,4}\\s*?(" +monthList + ")" ,"g");
var myString = "12.03.04 июнь 10:00";

    var match;
    while ((match = pattern.exec(myString))!= null){
        console.log('Match: "' + match[0] + '" first group: -> "' + match[1] + '" second group -> ' + match[2]);
    }
Ответить с цитированием
  #4 (permalink)  
Старый 05.07.2017, 13:24
Аспирант
Отправить личное сообщение для prog77 Посмотреть профиль Найти все сообщения от prog77
 
Регистрация: 05.07.2017
Сообщений: 57

рони,
мне для моей задачи нужно что бы каждое число было отдельно в массиве так же и июнь, просто у меня задача неординарная может ее и можно решить по другому но сейчас нужно так 12 03 04 июнь 10 00 всего 6 ячеек
Ответить с цитированием
  #5 (permalink)  
Старый 05.07.2017, 13:29
Аспирант
Отправить личное сообщение для prog77 Посмотреть профиль Найти все сообщения от prog77
 
Регистрация: 05.07.2017
Сообщений: 57

У вас просту возвращаем месяц и число, а мне нужно все цифры по отдельности в массиве. Конечно желательно вместо месяца сразу вернуть число июнь => 07
Ответить с цитированием
  #6 (permalink)  
Старый 05.07.2017, 14:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

prog77,
var pattern  = new RegExp("([0-9]{1,4}|" +monthList + ")" ,"g");
Ответить с цитированием
  #7 (permalink)  
Старый 05.07.2017, 14:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

Сообщение от prog77
июнь => 07
Ответить с цитированием
  #8 (permalink)  
Старый 05.07.2017, 14:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

prog77,
var month = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря',
        'январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь'
    ];
var monthList =  month.join("|");
var pattern  = new RegExp("([0-9]{1,4}|" +monthList + ")" ,"g");
var myString = "12.03.04 июнь 10:00";

    var match = myString.match(pattern).map(function(el) {
    var i = month.indexOf(el);
    return i != -1 ? ("0" + (i % 12 + 1)).substr(-2) : el
});
    alert(match)
Ответить с цитированием
  #9 (permalink)  
Старый 05.07.2017, 14:30
Аспирант
Отправить личное сообщение для prog77 Посмотреть профиль Найти все сообщения от prog77
 
Регистрация: 05.07.2017
Сообщений: 57

да у меня сейчас 8-й месяц идет Спасибо большое.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить переменную в Google Charts? Иван2017 Библиотеки/Тулкиты/Фреймворки 1 15.02.2017 14:33
Как использовать переменную в такой записи? MorfixProton Элементы интерфейса 1 31.01.2017 16:06
Flot Как передать переменную в функцию отрисовки точки на графике Ren jQuery 0 20.06.2012 14:16
Как сделать локальную переменную глобальной?? Дмитрий Общие вопросы Javascript 8 02.11.2010 03:33
Как обозначить переменную выбранную в FileChooser? woo_hoo Общие вопросы Javascript 4 03.07.2008 12:58