Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом примере показано, как преобразовать простые регулярные выражения для использования с MaskedTextBox управлением.
Описание языка маскирования
Стандартный язык маскирования MaskedTextBox основан на языке, используемом в элементе управления Masked Edit
в Visual Basic 6.0, и должен быть знаком пользователям, мигрирующим с этой платформы.
Свойство MaskMaskedTextBox элемента управления указывает, какую маску ввода следует использовать. Маска должна быть строкой, состоящей из одного или нескольких элементов маскирования из следующей таблицы.
Элемент Маскирования | Описание | Элемент регулярных выражений |
---|---|---|
0 | Любая одна цифра от 0 до 9. Требуется вход. | \d |
9 | Цифры или пробелы. Ввод необязателен. | [ \d]? |
# | Цифры или пробелы. Ввод необязателен. Если эта позиция остается пустой в маске, она будет отображаться в виде пробела. Разрешены знаки плюса (+) и минуса (-). | [ \d+-]? |
L | Буква ASCII. Требуется вход. | [a-zA-Z] |
? | Буква ASCII. Ввод необязателен. | [a-zA-Z]? |
& | Характер. Требуется вход. | [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}] |
С | Характер. Ввод необязателен. | [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]? |
А | Буквы и цифры. Ввод необязателен. | \W |
. | Десятичный разделитель, соответствующий локальным нормам. | Недоступно. |
, | Правила использования разделителя тысяч, соответствующие культурным нормам. | Недоступно. |
: | Разделитель времени, соответствующий культурным нормам. | Недоступно. |
/ | Регионально-адаптированный разделитель даты. | Недоступно. |
$ | Символ валюты, подходящий для культуры. | Недоступно. |
< | Преобразует все следующие символы в строчные. | Недоступно. |
> | Преобразует все последующие символы в верхний регистр. | Недоступно. |
| | Отменяет предыдущий сдвиг вверх или вниз. | Недоступно. |
\ | Экранирует символ маски, преобразуя его в обычный текст. "\\\\" — это символ экранирования для обратного слэша. | \ |
Все остальные символы. | Литералы. Все элементы, отличные от маски, будут отображаться в пределах MaskedTextBox. | Все остальные символы. |
Десятичные (.), тысячные (,), время (:), дата (/), и символы валюты ($) по умолчанию отображаются так, как это определено языковыми и региональными параметрами приложения. Можно заставить их отображать символы другой культуры, используя свойство FormatProvider.
Регулярные выражения и маски
Хотя для проверки входных данных пользователей можно использовать регулярные выражения и маски, они не полностью эквивалентны. Регулярные выражения могут выражать более сложные шаблоны, чем маски, но маски могут выразить ту же информацию более кратко и в культурно релевантном формате.
В следующей таблице сравниваются четыре регулярных выражения и эквивалентная маска для каждого.
Регулярное выражение | Маска | Примечания. |
---|---|---|
\d{2}/\d{2}/\d{4} |
00/00/0000 |
Символ / в маске является логическим разделителем даты и будет отображаться пользователю как разделитель даты, соответствующий текущей культуре приложения. |
\d{2}-[A-Z][a-z]{2}-\d{4} |
00->L<LL-0000 |
Дата (день, аббревиатура месяца и год) в формате США, в котором трехбуквенное сокращение месяца отображается с начальной прописной буквой и двумя строчными буквами. |
(\(\d{3}\)-)?\d{3}-d{4} |
(999)-000-0000 |
Номер телефона Сша, код области необязательный. Если пользователь не хочет вводить необязательные символы, он может ввести пробелы или поместить указатель мыши непосредственно в положение в маске, представленной первым 0. |
$\d{6}.00 |
$999,999.00 |
Значение валюты в диапазоне от 0 до 999999. Денежные, тысячные и десятичные символы будут заменены во время выполнения их эквивалентами, соответствующими языковым и региональным параметрам. |
См. также
- Mask
- MaskedTextBox
- Проверка строк в Visual Basic
- элемент управления маскированное текстовое поле