Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.10.2014, 15:05
Аспирант
Отправить личное сообщение для tenebrosus Посмотреть профиль Найти все сообщения от tenebrosus
 
Регистрация: 30.01.2014
Сообщений: 82

Регулярка нужна)
Помогите проверить дату. 20.10.2014
Ответить с цитированием
  #2 (permalink)  
Старый 20.10.2014, 15:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Регуляркой нельзя проверить дату. Можно только проверить синтаксис, но это не гарантирует верного ввода. Юзер может ввести например 30.02.2014

Проверка на синтаксис:
var re = /^\d{1,2}\.\d{2}\.\d{4}$/;
alert([ re.test('30.02.2014'), re.test('abc.02.2014'), re.test('1.12.2020') ]);


И причем тут jQuery?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 20.10.2014, 15:51
Аспирант
Отправить личное сообщение для tenebrosus Посмотреть профиль Найти все сообщения от tenebrosus
 
Регистрация: 30.01.2014
Сообщений: 82

Спасибо, как сделать, чтобы re.test('1.13.2020') или re.test('32.13.2020') тоже false были?
Ответить с цитированием
  #4 (permalink)  
Старый 20.10.2014, 16:17
Аспирант
Отправить личное сообщение для tenebrosus Посмотреть профиль Найти все сообщения от tenebrosus
 
Регистрация: 30.01.2014
Сообщений: 82

Чтобы было 2 числа, и диапазон- от 01(или 1) до 31 и до 12?
Ответить с цитированием
  #5 (permalink)  
Старый 20.10.2014, 16:36
Аспирант
Отправить личное сообщение для tenebrosus Посмотреть профиль Найти все сообщения от tenebrosus
 
Регистрация: 30.01.2014
Сообщений: 82

чего так не работает: var re = /^\d[1-31]\.\d[1-12]\.\d[2014-2015]$/;
Ответить с цитированием
  #6 (permalink)  
Старый 20.10.2014, 18:13
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от tenebrosus
диапазон- от 01(или 1) до 31 и до 12?
Если устраивает формат xx.xx.20xx, попробуй потестить такое:

re=/^(0[1-9]|[12]\d|3[01])\.(0[1-9]|1[012])\.20\d\d$/
Ответить с цитированием
  #7 (permalink)  
Старый 20.10.2014, 18:20
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от tenebrosus
чего так не работает
Ты вообще ахинею написал Начнем с того, что диапазон не может быть в формате [xx-xx], только [x-x]. Далее, первый шаблон \d совпадет с любым числовым символом, значит, 9xxx тоже сюда попадает. Ну и, so on, so forth...
Ответить с цитированием
  #8 (permalink)  
Старый 20.10.2014, 18:29
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от terminator-101
 
Регистрация: 14.10.2014
Сообщений: 117

Сообщение от tenebrosus
2014-2015
А, ну если только 14-15 тогда

re=/^(0[1-9]|[12]\d|3[01])\.(0[1-9]|1[012])\.201[45]$/
Ответить с цитированием
  #9 (permalink)  
Старый 20.10.2014, 19:27
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

terminator-101, написал нормально, только это всё всё равно фигня. Ибо есть февраль, есть даже високосный год...
Дату следует проверять либо чрез Date, либо через полноценную функцию-велосипед, учитывающую все тонкости. И первый вариант правильнее.
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по javascript darklend Общие вопросы Javascript 0 12.01.2014 23:33
Нужна маленькая регулярка Sherminator Events/DOM/Window 3 30.10.2013 19:18
Нужна помощь по слайдеру seoguru Работа 3 28.01.2013 22:02
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17
НУжна помощ ! Jumong Общие вопросы Javascript 4 01.10.2008 23:17