Проверка формата даты Предоставление ошибки

99
11

Я использовал выражение формата даты в своем проекте. Я использовал его в Javascript, он отлично работает. Но пока я использую его на стороне сервера, он дает мне сообщение об ошибке Unrecognized Escape Sequence. Мой формат выглядит следующим образом. Даже я попробовал Regex. но все еще не работает. Мой формат выглядит следующим образом.

  protected void txt_duedate_validate_server(object source, ServerValidateEventArgs args)
{
string duedate = txtduedate.Text.Trim();
if (duedate == string.Empty || duedate == "Due Date")
{
args.IsValid = false;
return;

}
else
{
string fromdatePat = "/^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/;";
Regex re = new Regex(fromdatePat);

string compare=srqstdate.match(fromdatePat);
if(compare==null)
{
args.IsValid = false;
return false;
}
}

}

спросил(а) 2021-01-25T14:36:26+03:00 5 месяцев назад
1
Решение
77

Ваш код выглядит как С#. Измените свое регулярное выражение, взятое из JavaScript: опустите верхнюю и конечную черты (и точку с запятой) (/.../;). Удалите экранирование из остальных косых черт (/ вместо \/). Используйте дословный строковый литерал (@"..."), поэтому вам не нужно добавлять дополнительное экранирование.

string fromdatePat = @"^(((0[1-9]|[12]\d|3[01])/(0[13578]|1[02])/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])/02/((19|[2-9]\d)\d{2}))|(29/02/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))";
Regex re = new Regex(fromdatePat);
if (!re.IsMatch(srqstdate)) { args.IsValid = false; }

ответил(а) 2021-01-25T14:36:26+03:00 5 месяцев назад
45

С любыми требованиями времени и даты я нашел http://www.datejs.com реальную помощь. Особенно, когда вы пытаетесь принять ввод данных и проверяете их.

ответил(а) 2021-01-25T14:36:26+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема