Маска в многострочном текстовом поле - PullRequest
2 голосов
/ 29 ноября 2010

Я бы хотел реализовать textBox, в котором пользователь может вставлять только текст в шаблон, например:


dddddddddd,
dddddddddd,
dddddddddd,
...

, где d - это цифра.Если пользователь оставляет контроль с менее чем 10 цифрами в строке, проверка должна завершиться неудачно, и он не должен иметь возможность записать в одну строку более 10 цифр, тогда допустимым должно быть только запятая ",".

Спасибо за помощь

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Я предлагаю регулярное выражение

\A(?:\s*\d{10},)*\s*\d{10}\s*\Z

Пояснение:

\A        # start of the string
(?:       # match the following zero or more times:
 \s*      # optional whitespace, including newlines
 \d{10},  # 10 digits, followed by a comma
)*        # end of repeated group
\s*       # match optional whitespace
\d{10}    # match 10 digits (this time no comma)
\s*       # optional whitespace
\Z        # end of string

В C # это будет выглядеть как

validInput = Regex.IsMatch(subjectString, @"\A(?:\s*\d{10},)*\s*\d{10}\s*\Z");

Обратите внимание, что вам нужно использовать дословную строку (@"...") или удвоить все обратные слеши в регулярном выражении.

1 голос
/ 29 ноября 2010
 Match m = Regex.Match(textBox.Text, @"^\d{10},$", RegexOptions.Multiline);

Не пробовал, но должно работать.Пожалуйста, посмотрите здесь и здесь для получения дополнительной информации.

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