Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом примере показано, как преобразовать простые регулярные выражения для использования с 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
- элемент управления маскированное текстовое поле