Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Валидация даты. / 25 сообщений из 28, страница 1 из 2
16.11.2007, 22:59
    #34946414
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Как в JavaScript сделать валидацию на дату типа: yyyy/MM/dd HH:mm:ss ?
...
Рейтинг: 0 / 0
17.11.2007, 02:51
    #34946515
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Код: plaintext
1.
var date = new Date();
date.setTime(Date.parse("2007/11/17 1:43:28"));
Далее можно получить дату в приемлемом виде:
Код: plaintext
alert(date.toLocaleString());
или получить значения:
Код: plaintext
1.
2.
year = date.getFullYear();
month = date.getMonth();
day = date.getDate();
...
Рейтинг: 0 / 0
17.11.2007, 11:19
    #34946612
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
IDVsbruck
Код: plaintext
1.
var date = new Date();
date.setTime(Date.parse("2007/11/17 1:43:28"));
Далее можно получить дату в приемлемом виде:
Код: plaintext
alert(date.toLocaleString());
или получить значения:
Код: plaintext
1.
2.
year = date.getFullYear();
month = date.getMonth();
day = date.getDate();



Видимо не очень понятно объяснил. Есть поле и нужно проверить, ввели ли туда дату в формате: yyyy/MM/dd HH:mm:ss .
...
Рейтинг: 0 / 0
17.11.2007, 11:25
    #34946619
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
вам помогут регулярные выражения
...
Рейтинг: 0 / 0
17.11.2007, 11:26
    #34946620
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
GWhiteвам помогут регулярные выражения
Нифига. Там нельзя указать например год не меньше 1900 и не больше 2100.
...
Рейтинг: 0 / 0
17.11.2007, 11:29
    #34946623
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Так какие вопросы? Есть некий input c id=enterDate ...
Пишем:
Код: plaintext
1.
2.
3.
4.
5.
6.
var date = new Date();
try {
date.setTime(Date.parse(document.getElementById("enterDate")));
alert("Date is correct");
} catch (exception) {
alert("Date is incorrect");
}
Думаю, остальное не надо объяснять ...
...
Рейтинг: 0 / 0
17.11.2007, 11:31
    #34946625
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Чёрт. Я совсем забыл, что JavaScript тоже содержит исключения, а ведь о них сразу подумал. Сейчас проверим...
...
Рейтинг: 0 / 0
17.11.2007, 11:31
    #34946626
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Кстати, прелесть такого способа в том, что пользователь может ввести "2007-11-17 10:30" или "2007/11/17 10:30.28" или "17-11-2007 10.30", а скрипт это схавает.
...
Рейтинг: 0 / 0
17.11.2007, 11:34
    #34946630
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Вот здесь есть пример влидации даты на соответствие классически шаблонам
dd-MM-yyyy и dd/MM/yyyy
А в целом в инете полно готовых regexp выражений на всевозможные случаи жизни, хотя у вас формат мягко говоря оригинальный :)
...
Рейтинг: 0 / 0
17.11.2007, 11:34
    #34946631
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
IDVsbruckКстати, прелесть такого способа в том, что пользователь может ввести "2007-11-17 10:30" или "2007/11/17 10:30.28" или "17-11-2007 10.30", а скрипт это схавает.


Так это не есть хорошо.
Надо глянуть в мануалах, может быть у Date.parse() есть какие-то форматеры или прочие штуки...
...
Рейтинг: 0 / 0
17.11.2007, 11:35
    #34946633
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
GWhiteВот здесь есть пример влидации даты на соответствие классически шаблонам
dd-MM-yyyy и dd/MM/yyyy
А в целом в инете полно готовых regexp выражений на всевозможные случаи жизни, хотя у вас формат мягко говоря оригинальный :)

Это гады америкосы такой формат хотят.
...
Рейтинг: 0 / 0
17.11.2007, 11:36
    #34946634
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
А сори, формат обычный, глаз подвел
...
Рейтинг: 0 / 0
17.11.2007, 11:38
    #34946635
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
GWhiteА сори, формат обычный, глаз подвел

Бывает...
...
Рейтинг: 0 / 0
17.11.2007, 11:42
    #34946641
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
IDVsbruckТак какие вопросы? Есть некий input c id=enterDate ...
Пишем:
Код: plaintext
1.
2.
3.
4.
5.
6.
var date = new Date();
try {
date.setTime(Date.parse(document.getElementById("enterDate")));
alert("Date is correct");
} catch (exception) {
alert("Date is incorrect");
}
Думаю, остальное не надо объяснять ...


Тут надо проверить, как парсятся альтернативные форматы
например
11-12-2007 - в принципе русский чел сразу скажет что это одиннадцатое декабря
а америкос что 12 ноября
Я о том что при корректной дате с точки зрения Date.parse() можно получить не совсем то...
а в регэкспе такого уже не будет...
...
Рейтинг: 0 / 0
17.11.2007, 11:45
    #34946645
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
....тем более что вопрос иммено в том, что бы проверить на соответствие сигнатуре, а не только на корректность даты как таковой
...
Рейтинг: 0 / 0
17.11.2007, 11:48
    #34946646
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Вот скрин....

Собственно может так что-то кому-то поможет. Я сейчас капаю в сторону формата в Date.parse()...
...
Рейтинг: 0 / 0
17.11.2007, 11:53
    #34946654
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Слушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(
...
Рейтинг: 0 / 0
17.11.2007, 12:02
    #34946664
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
man.without.faceСлушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(

Никому не говори тока :)
...
Рейтинг: 0 / 0
17.11.2007, 12:04
    #34946666
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
GWhite man.without.faceСлушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(

Никому не говори тока :)

Да просто потом вытащу в отдельный файл и всё. Никто и не заметит. Мля, ну не могу я ничё придумать проще. :(

А больше никаких вариантов нет, да?
...
Рейтинг: 0 / 0
17.11.2007, 12:34
    #34946700
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
man.without.face GWhite man.without.faceСлушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(

Никому не говори тока :)

Да просто потом вытащу в отдельный файл и всё. Никто и не заметит. Мля, ну не могу я ничё придумать проще. :(

А больше никаких вариантов нет, да?

А чем тебе регулярные выражения не нравятся?
...
Рейтинг: 0 / 0
17.11.2007, 12:37
    #34946704
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
GWhite man.without.face GWhite man.without.faceСлушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(

Никому не говори тока :)

Да просто потом вытащу в отдельный файл и всё. Никто и не заметит. Мля, ну не могу я ничё придумать проще. :(

А больше никаких вариантов нет, да?

А чем тебе регулярные выражения не нравятся?

1. Не помню я их.
2. Ими если не ошибаюсь нельзя задать ограничения. (год 1900-2100). Не помню кстати как там с месяцами и днями.

Ошибаюсь? Покажи пример или что-то в этом роде.
...
Рейтинг: 0 / 0
17.11.2007, 14:11
    #34946745
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
я ссылку дал, основа выражений - сравнение строк и символов, там нет дат как таковых.
Потрать время, сделай по уму, а инфа в мозге пригодится на будущее.
...
Рейтинг: 0 / 0
17.11.2007, 14:14
    #34946747
man.without.face
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
GWhiteя ссылку дал, основа выражений - сравнение строк и символов, там нет дат как таковых.
Потрать время, сделай по уму, а инфа в мозге пригодится на будущее.

Время будет - сделаю. Сейчас другие баги фиксить надо.
...
Рейтинг: 0 / 0
17.11.2007, 14:18
    #34946750
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
Хоть убей - не понимаю, чем описанный способ не нравится.
Что в результате надо получить? - Проверить дату и получить в правильном формате?
Тогда зачем заморачиваться? - Через эксепшн получаешь проверку даты на валидность, получаешь объект типа Date, а в строчку вставляешь свой результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function validator() {
	var date = new Date();
	try {
		date.setTime(Date.parse(document.getElementById("enterDate").value));
		document.getElementById("enterDate").value = date.getYear() + "/" + date.getMonth() + "/" + date.getDate() + " " + date.getHour() + ":" + date.getMinute() + ":" + date.getSecond();
	} catch (exception) {
		alert("Date is incorrect");
		document.getElementById("enterDate").focus();
		return;
	}
}
И все - есть проверка на валидность и правильный результат.
Мог где-то ошибиться со слешами и точностью методов (неохота копаться искать) - если что, на MSDN есть описание всех методов.
...
Рейтинг: 0 / 0
17.11.2007, 14:26
    #34946755
GWhite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Валидация даты.
IDVsbruckХоть убей - не понимаю, чем описанный способ не нравится.
Что в результате надо получить? - Проверить дату и получить в правильном формате?
Тогда зачем заморачиваться? - Через эксепшн получаешь проверку даты на валидность, получаешь объект типа Date, а в строчку вставляешь свой результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function validator() {
	var date = new Date();
	try {
		date.setTime(Date.parse(document.getElementById("enterDate").value));
		document.getElementById("enterDate").value = date.getYear() + "/" + date.getMonth() + "/" + date.getDate() + " " + date.getHour() + ":" + date.getMinute() + ":" + date.getSecond();
	} catch (exception) {
		alert("Date is incorrect");
		document.getElementById("enterDate").focus();
		return;
	}
}
И все - есть проверка на валидность и правильный результат.
Мог где-то ошибиться со слешами и точностью методов (неохота копаться искать) - если что, на MSDN есть описание всех методов.


юзер вводит Jul 8, 2005 , Date.parse("Jul 8, 2005") не создает исключение....но
Jul 8, 2005 не подходит под yyyy/MM/dd HH:mm:ss - в результате шляпа
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Валидация даты. / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]