Reguliere expressies gebruiken met het besturingselement MaskedTextBox in Visual Basic
In dit voorbeeld ziet u hoe u eenvoudige reguliere expressies converteert om met het MaskedTextBox besturingselement te werken.
Beschrijving van de maskeringstaal
De standaardmaskertaal MaskedTextBox is gebaseerd op de taal die wordt gebruikt door het Masked Edit
besturingselement in Visual Basic 6.0 en moet bekend zijn met gebruikers die van dat platform migreren.
De Mask eigenschap van het MaskedTextBox besturingselement geeft aan welk invoermasker moet worden gebruikt. Het masker moet een tekenreeks zijn die bestaat uit een of meer maskeringselementen uit de volgende tabel.
Maskeringselement | Beschrijving | Element reguliere expressie |
---|---|---|
0 | Eén cijfer tussen 0 en 9. Invoer vereist. | \D |
9 | Cijfer of spatie. Vermelding optioneel. | [ \d]? |
# | Cijfer of spatie. Vermelding optioneel. Als deze positie leeg blijft in het masker, wordt deze weergegeven als een spatie. Plustekens (+) en mintekens (-). | [ \d+-]? |
L | ASCII-brief. Invoer vereist. | [a-zA-Z] |
? | ASCII-brief. Vermelding optioneel. | [a-zA-Z]? |
& | Teken. Invoer vereist. | [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}] |
E | Teken. Vermelding optioneel. | [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]? |
A | Alfanumerieke. Vermelding optioneel. | \W |
. | Tijdelijke aanduiding voor de juiste decimale tekens. | Niet beschikbaar. |
, | Tijdelijke aanduiding voor duizendtallen die geschikt zijn voor cultuur. | Niet beschikbaar. |
: | Tijdscheidingsteken dat geschikt is voor cultuur. | Niet beschikbaar. |
/ | Datumscheidingsteken dat geschikt is voor cultuur. | Niet beschikbaar. |
$ | Valutasymbool dat geschikt is voor cultuur. | Niet beschikbaar. |
< | Converteert alle tekens die volgen naar kleine letters. | Niet beschikbaar. |
> | Converteert alle tekens die volgen naar hoofdletters. | Niet beschikbaar. |
| | Een vorige dienst omhoog of omlaag verplaatsen ongedaan maakt. | Niet beschikbaar. |
\ | Escapet een maskerteken, waardoor het een letterlijke teken wordt. \\is de escapereeks voor een backslash. | \ |
Alle andere tekens. | Letterlijke gegevens. Alle niet-maskerelementen worden als zichzelf MaskedTextBoxweergegeven. | Alle andere tekens. |
De decimale symbolen (.), duizendste (,), tijd (:), datum (/) en valutasymbolen ($) worden standaard weergegeven, zoals gedefinieerd in de cultuur van de toepassing. U kunt afdwingen dat symbolen voor een andere cultuur worden weergegeven met behulp van de FormatProvider eigenschap.
Reguliere expressies en maskers
Hoewel u reguliere expressies en maskers kunt gebruiken om gebruikersinvoer te valideren, zijn ze niet volledig gelijkwaardig. Reguliere expressies kunnen complexere patronen dan maskers uitdrukken, maar maskers kunnen dezelfde informatie beknopter en in een cultureel relevante indeling uitdrukken.
In de volgende tabel worden vier reguliere expressies en het equivalente masker voor elk expressies vergeleken.
Gewone expressie | Masker | Opmerkingen |
---|---|---|
\d{2}/\d{2}/\d{4} |
00/00/0000 |
Het / teken in het masker is een logisch datumscheidingsteken en wordt aan de gebruiker weergegeven als het datumscheidingsteken dat geschikt is voor de huidige cultuur van de toepassing. |
\d{2}-[A-Z][a-z]{2}-\d{4} |
00->L<LL-0000 |
Een datum (dag, maand afkorting en jaar) in Verenigde Staten notatie waarin de afkorting van drie letters wordt weergegeven met een eerste hoofdletter, gevolgd door twee kleine letters. |
(\(\d{3}\)-)?\d{3}-d{4} |
(999)-000-0000 |
Verenigde Staten telefoonnummer, netnummer optioneel. Als de gebruiker de optionele tekens niet wil invoeren, kan deze spaties invoeren of de muisaanwijzer rechtstreeks op de positie in het masker plaatsen dat wordt vertegenwoordigd door de eerste 0. |
$\d{6}.00 |
$999,999.00 |
Een valutawaarde in het bereik van 0 tot 999999. De valuta, duizendde en decimale tekens worden tijdens runtime vervangen door hun cultuurspecifieke equivalenten. |