Поделиться через


Использование регулярных выражений в элементе управления MaskedTextBox в Visual Basic

В этом примере показано, как преобразовать простые регулярные выражения для работы с элементом MaskedTextBox управления.

Описание языка маскирования

MaskedTextBox Стандартный язык маскирования основан на том, который используется Masked Edit элементом управления в Visual Basic 6.0 и должен быть знаком пользователям, перенесенным с этой платформы.

Свойство MaskMaskedTextBox элемента управления указывает, какую маску ввода следует использовать. Маска должна быть строкой, состоящей из одного или нескольких элементов маскирования из следующей таблицы.

Элемент Маскирования Description Элемент регулярных выражений
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
. Заполнитель десятичного значения, соответствующего языку и региональных параметров. Недоступна.
, Заполнитель тысяч, подходящих для языка и региональных параметров. Недоступна.
: Разделитель времени, соответствующий языку и региональным параметрам. Недоступна.
/ Разделитель даты и региональных параметров. Недоступна.
$ Символ валюты, соответствующий языку и региональных параметров. Недоступна.
< Преобразует все символы, которые следуют за строчным регистром. Недоступна.
> Преобразует все символы, которые следуют за верхним регистром. Недоступна.
| Отменяет предыдущий сдвиг вверх или вниз. Недоступна.
\ Экранирует символ маски, превращая его в литерал. "\\" — это escape-последовательность для обратной косой черты. \
Все остальные символы. Литералы. Все элементы, отличные от маски, будут отображаться в пределах 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. Денежные, тысячные и десятичные символы будут заменены во время выполнения их эквивалентами по языку и региональных параметров.

См. также