在 MaskedTextBox 控件中使用正则表达式 (Visual Basic)

本示例演示如何转换简单的正则表达式以使用 MaskedTextBox 控件。

掩码语言说明

标准的 MaskedTextBox 掩码语言基于 Visual Basic 6.0 中的 Masked Edit 控件使用的语言,从该平台迁移的用户应该很熟悉这种掩码语言。

MaskedTextBox 控件的 Mask 属性指定要使用的输入掩码。 该掩码必须是由下表中的一个或多个掩码元素组成的字符串。

掩码元素 说明 正则表达式元素
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}]
C 字符。 选填。 [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]?
A 字母数字。 选填。 \W
与区域性相符的小数占位符。 不可用。
, 与区域性相符的千分位占位符。 不可用。
: 与区域性相符的时间分隔符。 不可用。
/ 与区域性相符的日期分隔符。 不可用。
$ 与区域性相符的货币符号。 不可用。
< 将后面的所有字符转换为小写。 不可用。
> 将后面的所有字符转换为大写。 不可用。
| 撤消前一个大写或小写切换。 不可用。
\ 转义掩码字符,将其转换为文本。 “\\”是反斜杠的转义序列。 \
所有其他字符。 文字。 所有非掩码元素将在 MaskedTextBox 中按原样显示。 所有其他字符。

小数 (.)、千分位 (,)、时间 (:)、日期 (/) 和货币 ($) 符号默认根据应用程序的区域性定义显示这些符号。 可以使用 FormatProvider 属性强制它们显示另一种区域性的符号。

正则表达式和掩码

尽管可以使用正则表达式和掩码来验证用户输入,但两者并不完全等效。 与掩码相比,正则表达式能够表达更复杂的模式,但掩码能够更简明地以文化相关格式表达相同的信息。

下表将四个正则表达式及其等效掩码做了比较。

Regular Expression Mask 备注
\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 范围内的货币值。 在运行时,货币、千分位和小数字符将替换为其特定于区域性的等效字符。

另请参阅