Condividi tramite


Uso di espressioni regolari con il controllo MaskedTextBox in Visual Basic

In questo esempio viene illustrato come convertire semplici espressioni regolari in modo che funzionino con il MaskedTextBox controllo .

Descrizione del linguaggio di maschera

Il linguaggio di maschera standard MaskedTextBox è basato su quello usato dal Masked Edit controllo in Visual Basic 6.0 e deve essere familiare agli utenti che eseguono la migrazione da tale piattaforma.

La Mask proprietà del MaskedTextBox controllo specifica quale maschera di input utilizzare. La maschera deve essere una stringa composta da uno o più elementi di maschera della tabella seguente.

Elemento di mascheramento Descrizione Elemento delle espressioni regolari
0 Qualsiasi singola cifra compresa tra 0 e 9. Campo obbligatorio. \d
9 Cifra o spazio. Voce facoltativa. [ \d]?
# Cifra o spazio. Voce facoltativa. Se questa posizione viene lasciata vuota nella maschera, verrà reso come uno spazio. Sono consentiti segni più (+) e meno (-). [ \d+-]?
L Lettera ASCII. Campo obbligatorio. [a-zA-Z]
? Lettera ASCII. Voce facoltativa. [a-zA-Z]?
& Carattere. Campo obbligatorio. [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]
C Carattere. Voce facoltativa. [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]?
Un Alfanumerico. Voce facoltativa. \W
. Segnaposto decimale adeguato alla cultura. Non disponibile.
, Segnaposto migliaia appropriate per le impostazioni cultura. Non disponibile.
: Separatore orario appropriato per la cultura. Non disponibile.
/ Separatore di data appropriato per la cultura Non disponibile.
$ Simbolo di valuta appropriato per il contesto culturale. Non disponibile.
< Converte tutti i caratteri che seguono in lettere minuscole. Non disponibile.
> Converte tutti i caratteri che seguono in maiuscolo. Non disponibile.
| Annulla uno spostamento precedente verso l'alto o verso il basso. Non disponibile.
\ Esegue l'escape di un carattere di maschera, trasformandolo in un carattere letterale. "\\" è la sequenza di escape per una barra rovesciata (backslash). \
Tutti gli altri caratteri. Valori letterali. Tutti gli elementi non maschera verranno visualizzati come se stessi all'interno di MaskedTextBox. Tutti gli altri caratteri.

I simboli decimali (.), millesimi (,), ora (:), data (/) e valuta ($) vengono visualizzati per impostazione predefinita come definito dalle impostazioni cultura dell'applicazione. È possibile forzarli a visualizzare i simboli per altre impostazioni culturali usando le FormatProvider proprietà.

Espressioni regolari e maschere

Sebbene sia possibile usare espressioni regolari e maschere per convalidare l'input dell'utente, non sono completamente equivalenti. Le espressioni regolari possono esprimere modelli più complessi rispetto alle maschere, ma le maschere possono esprimere le stesse informazioni in modo più conciso e in un formato culturalmente rilevante.

Nella tabella seguente vengono confrontate quattro espressioni regolari e la maschera equivalente per ognuna.

Espressione regolare Maschera Note
\d{2}/\d{2}/\d{4} 00/00/0000 Il / carattere nella maschera è un separatore di data logico e verrà visualizzato come un separatore di data adatto alle impostazioni culturali correnti dell'applicazione.
\d{2}-[A-Z][a-z]{2}-\d{4} 00->L<LL-0000 Data (giorno, abbreviazione del mese e anno) in formato Stati Uniti in cui l'abbreviazione del mese di tre lettere viene visualizzata con una lettera maiuscola iniziale seguita da due lettere minuscole.
(\(\d{3}\)-)?\d{3}-d{4} (999)-000-0000 Numero di telefono degli Stati Uniti, codice di area facoltativo. Se l'utente non desidera immettere i caratteri facoltativi, può immettere spazi o posizionare il puntatore del mouse direttamente nella posizione nella maschera rappresentata dal primo 0.
$\d{6}.00 $999,999.00 Valore di valuta compreso nell'intervallo compreso tra 0 e 999999. La valuta, il millesimo e i caratteri decimali verranno sostituiti in fase di esecuzione con i loro equivalenti specifici culturali.

Vedere anche