在 Visual Basic 中將規則運算式與 MaskedTextBox 控制項一起搭配使用
此範例示範如何轉換簡單的規則運算式以使用 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 屬性,強制顯示另一個文化特性的符號。
規則運算式和遮罩
雖然您可以使用規則運算式和遮罩來驗證使用者輸入,但它們並不完全相等。 規則運算式可以表達比遮罩更複雜的模式,但遮罩能以更簡潔且與文化相關的格式來表達相同資訊。
下表比較四個規則運算式和每個的對等遮罩。
規則運算式 | 遮罩 | 備註 |
---|---|---|
\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 範圍內的貨幣值。 貨幣、千位和小數點字元,會在執行階段以其文化特性專屬的同等項目取代。 |