Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.10.2013, 18:08
Новичок на форуме
Отправить личное сообщение для ioane Посмотреть профиль Найти все сообщения от ioane
 
Регистрация: 12.05.2013
Сообщений: 4

регулярные выражения
нужно с помощью регулярных выражений проверить дату на соответствие следующим образцам:
мм/дд/гггг, м-дд-гггг, ммддгггг, мм.дд.гггг
вот это рабочее выражение
/^((0\d)|(1[12])|([1-9]))([-\/ .])?(([012]\d)|(3[01]))([-/\ .])?([012]\d{3})$/

однако оно не проверяет условие присутствия в дате только одного разделителя (например, мм.дд/гггг такая запись считается правильной)
пытался сделать следующее, но не работает
/^((0\d)|(1[12])|([1-9]))(([-][^.\/])|([\/][^-.])|([.][^-\/]))?(([012]\d)|(3[01]))(([-][^.\/])|([\/][^-.])|([.][^-\/]))?([012]\d{3})$/

что нужно исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 27.10.2013, 01:04
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

/^(0?[1-9]|1[012])([.\/-]?)(0[1-9]|[12]\d|3[01])\2[012]\d{3}$/


первый разделитель [.\/-]? находится во вторых по счету круглых скобках и попадает во "2-ю группу".
второй разделитель обозначен \2 - т.е. он должен быть как значение "2-й группы"
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения alex2012 Общие вопросы Javascript 5 23.02.2013 19:49
Регулярные выражения для javascript qwert_ukg Общие вопросы Javascript 3 20.04.2012 13:45
Регулярные выражения vivalaakam Общие вопросы Javascript 6 08.02.2012 09:41
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35