Používání regulárních výrazů s ovládacím prvkem MaskedTextBox v jazyce Visual Basic
Tento příklad ukazuje, jak převést jednoduché regulární výrazy pro práci s ovládacím MaskedTextBox prvku.
Popis jazyka maskování
Standardní jazyk maskování je založený na jazyce MaskedTextBox , který Masked Edit
používá ovládací prvek v jazyce Visual Basic 6.0 a měl by být známý pro uživatele, kteří migrují z této platformy.
Vlastnost Mask ovládacího prvku určuje, jakou vstupní masku MaskedTextBox použít. Maska musí být řetězec složený z jednoho nebo více prvků maskování z následující tabulky.
Masking – element | Popis | Element regulárního výrazu |
---|---|---|
0 | Libovolná jednoduchá číslice mezi 0 a 9. Je vyžadována položka. | \d |
9 | Číslice nebo mezera Položka je nepovinná. | [ \d]? |
# | Číslice nebo mezera Položka je nepovinná. Pokud je tato pozice v masce prázdná, zobrazí se jako mezera. Znaménka plus (+) a minus (-) jsou povolená. | [ \d+-]? |
L | Písmeno ASCII. Je vyžadována položka. | [a-zA-Z] |
? | Písmeno ASCII. Položka je nepovinná. | [a-zA-Z]? |
& | Znak. Je vyžadována položka. | [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}] |
C | Znak. Položka je nepovinná. | [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]? |
A | Alfanumerické. Položka je nepovinná. | \W |
. | Zástupný symbol desetinné čárky odpovídající jazykové verzi | Není k dispozici. |
, | Zástupný symbol tisíců odpovídající jazykové verzi | Není k dispozici. |
: | Oddělovač času odpovídající jazykové verzi | Není k dispozici. |
/ | Oddělovač kalendářních dat odpovídající jazykové verzi | Není k dispozici. |
$ | Symbol měny odpovídající jazykové verzi. | Není k dispozici. |
< | Převede všechny znaky, které následují, na malá písmena. | Není k dispozici. |
> | Převede všechny následující znaky na velká písmena. | Není k dispozici. |
| | Vrátí zpět předchozí posun nahoru nebo dolů. | Není k dispozici. |
\ | Unikne znak masky a změní ho na literál. \\ je řídicí sekvence zpětného lomítka. | \ |
Všechny ostatní znaky. | Literály. Všechny prvky, které nejsou masky, se zobrazí jako samy v rámci MaskedTextBox. | Všechny ostatní znaky. |
Desetinné číslo (.), tisíciny (,), čas (:), datum (/) a symbol měny ($) se standardně zobrazují tak, jak jsou definovány jazykovou verzí aplikace. Pomocí vlastnosti je můžete vynutit, aby zobrazovaly symboly pro jinou jazykovou FormatProvider verzi.
Regulární výrazy a masky
I když k ověření uživatelského vstupu můžete použít regulární výrazy a masky, nejsou úplně ekvivalentní. Regulární výrazy mohou vyjádřit složitější vzory než masky, ale masky mohou vyjádřit stejné informace stručněji a v kulturně relevantním formátu.
Následující tabulka porovnává čtyři regulární výrazy a ekvivalentní masku pro každou z nich.
Regulární výraz | Maska | Notes |
---|---|---|
\d{2}/\d{2}/\d{4} |
00/00/0000 |
Znak / v masce je logický oddělovač kalendářních dat a zobrazí se uživateli jako oddělovač kalendářních dat odpovídající aktuální jazykové verzi aplikace. |
\d{2}-[A-Z][a-z]{2}-\d{4} |
00->L<LL-0000 |
Datum (den, zkratka měsíce a rok) ve formátu USA, ve kterém se zobrazuje zkratka třímísmenného měsíce s počátečním velkým písmenem následovaným dvěma malými písmeny. |
(\(\d{3}\)-)?\d{3}-d{4} |
(999)-000-0000 |
USA telefonní číslo, směrové číslo oblasti volitelné. Pokud uživatel nechce zadávat volitelné znaky, může buď zadat mezery, nebo umístit ukazatel myši přímo na pozici v masce reprezentované prvním 0. |
$\d{6}.00 |
$999,999.00 |
Hodnota měny v rozsahu od 0 do 999999. Měnu, tisíci a desetinné znaky se nahradí za běhu ekvivalenty specifickými pro jazykovou verzi. |