Как проверить правильность ввода даты в формате дд-мон-гггг в asp.net normalExpressionValidator? - PullRequest
1 голос
/ 03 мая 2009

Мне действительно нужен формат dd-mon-yy, потому что моя база данных oracle принимает даты в этом формате.

Могу ли я так проверить в RegularExpressionValidator?

А также, нужно ли преобразовывать значение текстового поля в формат времени данных Oracle при использовании nhibernate?

Большое спасибо за помощь;

Ответы [ 3 ]

3 голосов
/ 03 мая 2009

попробуй

Regx.ValidationExpression=@"^(([1-9])|(0[1-9])|(1[0-2]))\-((0[1-9]) |([1-31]))\-((\d{2})|(\d{4}))$";

или

вы можете попробовать этот пользовательский валидатор вместо

protected void CustomValidator1_ServerValidate (источник объекта, аргументы ServerValidateEventArgs) {

DateTime результат;

if (! DateTime.TryParse (args.Value, out out result))

{

args.IsValid = false;

возвращение;

} ​​else args.IsValid = true;

}

2 голосов
/ 03 мая 2009

Нужно ли заставлять пользователя вводить данные в формате, запрещенном базой данных Oracle? Пока пользователь вводит правильную дату, вы можете проанализировать ввод в объект DateTime и затем вызвать ToString ("dd-MMMM-yy"), чтобы создать представление даты в формате, требуемом базой данных. Это дает вам свободу предоставлять более удобные для пользователя средства сбора информации от пользователя, например, элемент управления выбора даты / времени.

1 голос
/ 03 мая 2009

Для двух цифр за год попробуйте:

^([012]?\d|3[01])-([Jj][Aa][Nn]|[Ff][Ee][Bb]|[Mm][Aa][Rr]|[Aa][Pp][Rr]|[Mm][Aa][Yy]|[Jj][Uu][Nn]|[Jj][Uu][Ll]|[Aa][Uu][Gg]|[Ss][Ee][Pp]|[Oo][Cc][Tt]|[Nn][Oo][Vv]|[Dd][Ee][Cc])-\d\d$

С четырьмя цифрами за год:

^([012]?\d|3[01])-([Jj][Aa][Nn]|[Ff][Ee][Bb]|[Mm][Aa][Rr]|[Aa][Pp][Rr]|[Mm][Aa][Yy]|[Jj][Uu][Nn]|[Jj][Uu][Ll]|[Aa][Uu][Gg]|[Ss][Ee][Pp]|[Oo][Cc][Tt]|[Nn][Oo][Vv]|[Dd][Ee][Cc])-(19|20)\d\d$

Эти выражения означают:

  • 0 или 1 или 2, за которыми следует число, или 3 плюс 0 или 1
  • следующая черта
  • В течение месяца он «пробует» все комбинации ЯН, ЯН, ЯН, ЯН и т. Д. ... на протяжении всех двенадцати месяцев
  • следующая черта
  • Наконец, он ожидает две цифры для версии 'yyyy' или 19 или 20, за которыми следуют две цифры для версии 'yy'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...