在 Visual Basic 中将正则表达式与 MaskedTextBox 控件配合使用

此示例演示如何将简单的正则表达式转换为与 MaskedTextBox 控件配合使用。

掩码语言的说明

标准 MaskedTextBox 掩码语言基于 Visual Basic 6.0 的 Masked Edit 控件所使用的掩码语言,对从该平台迁移的用户来说应该是熟悉的。

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

掩码元素 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}]
C 字符。 选填。 [\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 范围内的货币值。 在运行时,货币、千分位和小数字符将替换为其特定于区域性的等效字符。

另请参阅