@Hellek
Люблю говорить и слышать суть

Повторяющиеся элементы в регулярном выражении, как упростить?

Можно ли как то упростить регулярку, условно задача такая. В поле можно вводить, одиночную дату в формате "15.02.16", интервал, в формате "23.02.16-26.02.16". И то и другое разделяется ";"
В строке может быть сколько угодно интервалов и одиночных дат. Указанные даты и интервалы не обязательно должны идти в хронологическом порядке.
Например - "15.02.16; 23.02.16-26.02.16; 29.02.16; 15.06.16; 22.07.16-29.08.16; 01.01.16;".

На данный момент, для упрощения запрещен ввод прочих символов
if (e.keyCode != 8 || e.keyCode != 46) {
    var letters=' 1234567890;-.';
    return (letters.indexOf(String.fromCharCode(e.which))!=-1);
}

Как остальную часть сделать без костылей не понятно ::(
  • Вопрос задан
  • 274 просмотра
Решения вопроса 1
abyrkov
@abyrkov
JavaScripter
regexr.com/3evqu
/(?:\d{2}\.){2}\d{2}(?:\-(?:\d{2}\.){2}\d{2})?;\s?/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы