Проверка многострочного ввода текста при использовании .NET - PullRequest
5 голосов
/ 19 февраля 2009

У меня есть HtmlTextArea, и я хочу ограничить количество символов, которое пользователь может ввести, до 500.

В настоящее время я использовал RegularExpressionValidator ...

RegularExpressiondValidator val = new RegularExpressiondValidator ();
val.ValidationExpression = "^.{0,500}$";
val.ControlToValidate = id;
val.ErrorMessage = "blah";

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

Я понимаю, что существуют разные движки регулярных выражений, и мне нужно протестировать с .NET (кто-нибудь может указать мне направление в сторону хорошего онлайн)? ? m) "к моей строке выражения и замене ^ и $ на \ A и \ Z, но пока не повезло.

Еще один связанный с этим вопрос, могу ли я вообще избежать использования регулярного выражения и как-нибудь связать этот валидатор с моей собственной функцией валидации?

Ответы [ 3 ]

6 голосов
/ 19 февраля 2009

Измените свое регулярное выражение на следующее

"^(.|\n){0,500}$";

. символ соответствует всему, кроме новой строки. Предложение or решит вашу проблему.

6 голосов
/ 19 февраля 2009

"." не включает новые строки.

^ ((|. \ П) {0500}) $

Эта страница также может помочь, это шпаргалка регулярного выражения.

1 голос
/ 19 февраля 2009

Я бы сделал это двумя способами, если вы знаете javascript и хотите ограничить длину символов на стороне клиента, вы можете сделать это с помощью jQuery (популярной библиотеки расширений javascript).

$(document).ready(function(){
  var $TextBox = $("#<%=TextBox.ClientID %>");

  $TextBox.keyup(function(){
     return $TextBox.length <= <%=TextBox.MaxLength %>;
  });
});

Затем выполните аналогичную проверку на стороне сервера с помощью пользовательского валидатора или методом нажатия кнопки.

Существуют также способы включения и отключения ASP.Net Validators с помощью javascript, чтобы вы могли также рассмотреть это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...