2013-05-10 3 views
1

У меня есть текстовое поле, которое имеет учебный год в качестве входных данных. Это может быть формат 2013-14 или 2013-2014. Как использовать для этого средство проверки регулярных выражений?Регулятор регулярного выражения для года в asp.net

+0

Regex отлично подходит для текстовых шаблонов, но плохо для вычислений: это невозможно (или, по крайней мере, очень непрактично), чтобы указать, что после того, как «2013» только допускается «14» (как «13 + 1»). Для этого используйте специальный валидатор. –

+0

Да, я согласен, если вам нужен год год + 1 вам нужна дополнительная проверка для бизнес-логики – Serghei

+0

Если у вас очень ограниченный диапазон значений, вы можете рассмотреть возможность выпадания определенных (жестко закодированных или вычисленных) значений вместо текстового поля в свободном формате + валидатор. –

ответ

0

Я установил код issue..The, как так ..

<asp:RegularExpressionValidator id="txtAcademicYearName_RegularExpressionValidator2" runat="server" ControlToValidate="txtAcademicYearName" ErrorMessage="Enter academic year name in format YYYY-YY" ValidationExpression="(\b19|\b20)\d\d-\d\d" ForeColor="Red" Display="None" ValidationGroup="AcademicYear"></asp:RegularExpressionValidator> 
3

Вы можете использовать это регулярное выражение

^(\d{4}-(\d{2}|\d{4}))$ 

и как использовать регулярное выражение валидатора вы можете увидеть here

, если вы хотите, чтобы подтвердить, что второй год равен первому плюс 1 это бизнес-логика, и должен быть проверен на стороне сервера, после проверки правильности регулярного выражения на стороне клиента. Например, на стороне клиента вы можете подтвердить, что пользователь вводит правильный формат во входном текстовом поле с регулярным выражением выше, используя эту проверку, не позволяет вводить неверную строку, после того, как эта проверка прошла на стороне сервера, вы можете проанализировать строку ввода и проверить логику, которая должна быть на втором году больше чем первый

+0

Привет, я могу ввести любой год на самом деле. Будет ли ваш код работать в любом сценарии? – MusicLovingIndianGirl

+0

Что вы имели в виду в течение года? из вашего вопроса я понял, что формат 2014-15 или 2014-2015 4 и 2 или 4 цифры, если не дать больше примеров – Serghei

+0

Ваше регулярное выражение позволит «1234-98». Я подозреваю, что это должно быть: «год на 4 цифры» тире «год + 1 на две цифры». А может быть, даже «год не слишком далек от настоящего». –

0

Попробуйте это выражение

^([0-9]{4})[./-]+([0-9]{2})$// результат 2012-13 или 2012/13

^([0-9]{4})[./-]+([0-9]{4})$// результат на 2012-2013 годы или 2012/2013

Смежные вопросы