![]() |
|
![]() ![]() ![]() |
|
Jony_cs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Проблема в следующем - необходимо сделать проверку TextBox на наличие в нем даты.
Необходимо разрешить ввод даты как в коротком формате: 1.1.1 = 01.01.2001 (1.1.98=01.01.1998) так и в полном формате 01.01.2007 Поле не должно быть пустым. Подскажите как это можно сделать? |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: нет Всего: 170 |
RegularExpressionValidator и свой паттерн
а вообще
дает первое января первого года. Так что рекомендую хотя бы год полностью писать. Это сообщение отредактировал(а) tol05 - 16.10.2007, 10:09 -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
Jony_cs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Все дело в том, что у меня стоит 2 валидатора на это поле:
RequiredFieldValidator - проверяет TextBox на пустоту RangeValidator - проверяет TextBox на правильность введенной даты (от 01.01.1960 - 01.01.2100) Проверка даты осуществляется только в формате (mm.dd.yyyy), но мне нужен еще и краткий формат (точно не знаю как он называется) т.е. когда 1.1.1 = 01.01.2001. DateTime d = new DateTime(1,1,1); не выход т.к. TextBox сначала проверяется на стороне клиента! Думаю возможно это решить с помощью RegularExpressionValidator, но т.к. не знаток регулярных выражений, то ![]() |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: нет Всего: 170 |
я тебе то же самое говорил ![]() RangeValidator убери. Потому что ты разрешаешь юзеру вводить дату способами, непонятными машине. тебе нужно проверить, соответствует ли текст текстбокса (не дата, а именно текст, потому что 1.1.1 - не дата) твоему паттерну, потом отправить все это на сервер и там уже парсить и приводить к дате. RegularExpressionValidator используй. Пример - в msdn на ключ RegularExpressionValidator паттерн я бы использовал такой ^([0-3]\d|[1-9]).([0-1][1-9]|[1-9]).([0-2]\d{3}|[0-2]?[1-9])$ но не настаиваю на нем. В Regex я спец - не очень. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
Jony_cs |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
все оказалось не так сложно, как казалось
![]() ^([0]{1}[1-9]{1}|[1]{1}[0-2]{1}|[1-9]{1})(\\|\.|\/)([0]{1}[1-9]{1}|[1]{1}[0-9]{1}|[2]{1}[0-9]{1}|[3]{1}[0-1]{1}|[1-9]{1})(\\|\.|\/)([1-9]{1}|[0]{1}[1-9]{1}|[10-99]{2}|[190]{3}[0-9]{1}|[19]{2}[10-99]{2}|[200]{3}[0-9]{1}|[20]{2}[10-99]{2})$ получившиеся форматы: mm.dd.yyyy mm.dd.yy m.d.y проверял на значениях + 11/23/2000 + 1/1/1 + 2/2/20 + 01/1/1980 + 12/1/2000 + 8/03/1901 + 04/12/99 причем можно использовать '.' '/' '\', т.е. 11.23\2000 единственная проблема в том, что 02.31.2000 существует!!!! ![]() tol05 спасибо за участие Это сообщение отредактировал(а) Jony_cs - 19.10.2007, 14:19 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | ASP | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |