05.07.2017, 11:53
|
Аспирант
|
|
Регистрация: 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 нужно вставить переменную. не могу понять как это сделать. Спасибо
|
|
05.07.2017, 11:58
|
Аспирант
|
|
Регистрация: 05.07.2017
Сообщений: 57
|
|
переменную monthList))
|
|
05.07.2017, 12:21
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,115
|
|
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]);
}
|
|
05.07.2017, 13:24
|
Аспирант
|
|
Регистрация: 05.07.2017
Сообщений: 57
|
|
рони,
мне для моей задачи нужно что бы каждое число было отдельно в массиве так же и июнь, просто у меня задача неординарная может ее и можно решить по другому но сейчас нужно так 12 03 04 июнь 10 00 всего 6 ячеек
|
|
05.07.2017, 13:29
|
Аспирант
|
|
Регистрация: 05.07.2017
Сообщений: 57
|
|
У вас просту возвращаем месяц и число, а мне нужно все цифры по отдельности в массиве. Конечно желательно вместо месяца сразу вернуть число июнь => 07
|
|
05.07.2017, 14:02
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,115
|
|
prog77,
var pattern = new RegExp("([0-9]{1,4}|" +monthList + ")" ,"g");
|
|
05.07.2017, 14:04
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,115
|
|
Сообщение от prog77
|
июнь => 07
|
|
|
05.07.2017, 14:23
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,115
|
|
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)
|
|
05.07.2017, 14:30
|
Аспирант
|
|
Регистрация: 05.07.2017
Сообщений: 57
|
|
да у меня сейчас 8-й месяц идет Спасибо большое.
|
|
|
|