Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
1

Проверка валидности даты при вводе

25.03.2016, 09:27. Показов 4648. Ответов 9
Метки нет (Все метки)

Нужно ввести дату, и чтобы программа проверяла правильная ли она, например чтобы когда вводишь 31 апреля выходила ошибка или 30 февраля и т.д
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2016, 09:27
Ответы с готовыми решениями:

Как сравнить даты при вводе
Здравствуйте, на форуме именно такого вопроса не нашел про сравнение дат, потому и задаю. А...

Предварительная проверка при вводе
Ввод информации производится вот в такую форму: <form method="POST" action="w-6.php"> <input...

Проверка валидности email
Код проверяет заполнены ли поля: if ( posName.value == '') { alert("Введите Ваше имя");...

Проверка валидности и отправка данных на сервер
Только начала изучать JS подскажите пожалуйста как правильно сделать Задача: Создайте сайт из...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на JavaScript‌
Обучение в Java Mentor с оплатой после трудоустройства
9
Superposition
948 / 614 / 256
Регистрация: 27.10.2013
Сообщений: 2,084
25.03.2016, 09:37 2
DanDeL1oN,
Javascript
1
2
3
4
5
6
7
8
9
10
if ( Object.prototype.toString.call(d) === "[object Date]" ) {
  if ( isNaN( d.valueOf() ) ) {
    // Дата неправильная
  }
  else {
    //Дата правильная
  }
} else {
  // а это вообще не дата
}
1
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
25.03.2016, 09:44  [ТС] 3
Padimanskas, что-то не работает, можно поподробнее
0
Superposition
948 / 614 / 256
Регистрация: 27.10.2013
Сообщений: 2,084
25.03.2016, 09:50 4
DanDeL1oN, только с переполнением даты не работает(типа 31 апреля). Наверное лучше взять moment.js, с ним проще.
0
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
25.03.2016, 11:18 5
DanDeL1oN, имеются вопросы:
куда именно вводится дата?

в каком именно формате вводится дата? (пример формата: ДД.ММ.ГГГГ -- по две цифры дня и месяца и четыре цифры года; и всё это разделено точками)

когда (в какой момент) проверять валидность даты (например, в момент, когда поле ввода потеряет фокус)
или вы через модальное окно prompt () вводите?
0
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
25.03.2016, 14:44  [ТС] 6
kalabuni, я делаю через prompt(), так правильно? или нужно написать еще alert?
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<script>
var len=prompt("vvedi datu");
if ( Object.prototype.toString.call(d) === "[object Date]" ) {
  if ( isNaN( d.valueOf() ) ) {
    // Дата неправильная
  }
  else {
    //Дата правильная
  }
} else {
  // а это вообще не дата
}
</script>
</html>
0
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
25.03.2016, 21:48 7
Цитата Сообщение от DanDeL1oN Посмотреть сообщение
я делаю через prompt(), так правильно?
правильно -- как вам нужно, так и делайте, я просто уточнял

но я спрашивал вас не только об этом
0
1 / 1 / 0
Регистрация: 11.02.2015
Сообщений: 115
26.03.2016, 08:32  [ТС] 8
kalabuni, формат я выбрал чтобы писался через точку дд.мм.гг, и валидность проверялась когда нажимаю окей
0
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
26.03.2016, 09:40 9
если никто не поможет раньше, то подождите до среды -- освобожусь на работе, сделаю
0
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
31.03.2016, 06:07 10
Лучший ответ Сообщение было отмечено DanDeL1oN как решение

Решение

Javascript
1
2
3
4
5
6
7
8
9
10
11
var enter = prompt ('Введите дату в формате ДД.ММ.ГГ', '');
function testDate (s)
{
if (!(/^\d\d\.\d\d\.\d\d$/).test(s)) {console.log ('неверный формат даты'); return false}
var d = s.split ('.');
   if (!parseInt (d [1], 10) || parseInt (d [1], 10) > 12) {console.log ('неcуществующий номер месяца'); return false}
   if (new Date (2000 + parseInt (d [2], 10), d [1] - 1, parseInt (d [0], 10)).getMonth () == d [1]) {console.log ('в указанном месяце нет такого числа'); return false}
return true;
}
if (testDate (enter)) alert ('ok');
else alert ('error');
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2016, 06:07

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Не корректно работает проверка валидности формы
Всем привет коллеги! В общем проблемы: 1. Данные отправляются, но не проверяется валидность, код...

Проверка наличия и валидности DLL при старте приложения
Есть C#.NET DLL (моя), которая является оберткой над C++ DLL(не моя). Я использую ее(их получается)...

Исключительная ситуация при вводе даты
Всем привет! Во время ввода даты неправильного формата происходит исключение. Допустим дата 2006...

Код на проверку валидности даты
Нам задали в универе написать такой вот код, который должен проверять дату на валидность. Проблема...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.