Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка введенной даты, валидация 
V
    Опции темы
KaKTyCc
Дата 20.3.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



Необходимо решить задачу проверки введенной пользователем даты.
Календарь есть... надо разрешить ручками вводить.

Написал функцию

Код

 function checkdate(f) 
   {
    var myDate;
    var str = f.value;
    var temp = new Array();
    
    var re = new RegExp("^([0-9]{2}[.]{1}[0-9]{2}[.]{1}[0-9]{4})$");
    if (!str.match(re)) 
     {
      return "";
     } 
      else
     {
      temp = str.split(''.'');
      myDate = new Date(temp[2], temp[1], temp[0]);
      alert(temp[0]+"-"+myDate.getDate()) ;
      alert(temp[1]+"-"+myDate.getMonth());
      alert(temp[2]+"-"+myDate.getFullYear()); 
      if((temp[2]=myDate.getDate())&&(temp[1]=myDate.getMonth())&&(temp[0]=myDate.getFullYear()))
       {
         return f.value;
       } 
      else 
       return "";  
     }
    } 


Если ввести 12.12.2007  - дата не вернется, 
в алертах
12-12
12-0
2007-2008

почему если 12ый месяц newDate на следующий год переходит?

Добавлено @ 10:27 
http://wdh.suncloud.ru/js11.htm

скорее всего разобрался smile
Код

месяц — числовое выражение, задающее номер месяца (0 = январь, 1 = февраль, …, 11 = декабрь);


Это сообщение отредактировал(а) KaKTyCc - 20.3.2007, 10:16
--------------------
Мой блог
PM MAIL WWW   Вверх
KaKTyCc
Дата 20.3.2007, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



окончательный вариант функции, может быть кому то пригодится
Код

function checkdate(f) {
  var myDate;
  var str  = f.value;
  var temp = str.split(".");
  var re   = new RegExp("^([0-9]{2}[.]{1}[0-9]{2}[.]{1}[0-9]{4})$");
  if (!str.match(re)) {
    return "";
  } 

  myDate = new Date(parseInt(temp[2]), parseInt(temp[1]) - 1, parseInt(temp[0]));
  if((temp[0] == myDate.getDate()) &&
     (temp[1] == myDate.getMonth() + 1) &&
     (temp[2]==myDate.getFullYear())) {
    return f.value;
  } else {
    return "";  
  }
} 

--------------------
Мой блог
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.