Compartir a través de


Utilizar expresiones regulares con el control MaskedTextBox en Visual Basic

Este ejemplo muestra cómo convertir expresiones regulares simples para que funcionen con el control MaskedTextBox.

Descripción del lenguaje de enmascaramiento

El lenguaje de enmascaramiento estándar MaskedTextBox se basa en el que usa el Masked Edit control en Visual Basic 6.0 y debe ser familiar para los usuarios que migran desde esa plataforma.

La Mask propiedad del MaskedTextBox control especifica qué máscara de entrada se va a usar. La máscara debe ser una cadena compuesta por uno o varios de los elementos de enmascaramiento de la tabla siguiente.

Elemento Masking Descripción Error de expresión regular
0 Cualquier dígito único entre 0 y 9. Entrada requerida. \d
9 Dígito o espacio. Entrada opcional. [ \d]?
# Dígito o espacio. Entrada opcional. Si esta posición se deja en blanco en la máscara, se representará como un espacio. Se permiten signos más (+) y menos (-). [ \d+-]?
L Letra ASCII. Entrada requerida. [a-zA-Z]
? Letra ASCII. Entrada opcional. [a-zA-Z]?
& Carácter. Entrada requerida. [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]
C Carácter. Entrada opcional. [\p{Ll}\p{Lu}\p{Lt}\p{Lm}\p{Lo}]?
Un Alfanumérico. Entrada opcional. \W
. Marcador de posición decimal adecuado para la referencia cultural. No disponible.
, Marcador de posición de miles adecuado para la referencia cultural. No disponible.
: Separador de tiempo adecuado para la referencia cultural. No disponible.
/ Separador de fecha adecuado para la referencia cultural. No disponible.
$ Símbolo de moneda adecuado para la referencia cultural. No disponible.
< Convierte todos los caracteres que siguen a minúsculas. No disponible.
> Convierte todos los caracteres de una cadena a mayúsculas. No disponible.
| Deshace un desplazamiento anterior hacia arriba o hacia abajo. No disponible.
\ Aplica un carácter de mark a cualquier carácter, convirtiéndolo en un literal. "\\" es la secuencia de escape de una barra diagonal inversa. \
Todos los demás caracteres. Literales. Todos los elementos que no son máscaras aparecerán como sí mismos dentro de MaskedTextBox. Todos los demás caracteres.

Los símbolos decimales (.), thousandths (,), time (:), date (/) y currency ($) tienen como valor predeterminado mostrar esos símbolos según se define en la referencia cultural de la aplicación. Puede obligarlos a mostrar símbolos para otra referencia cultural mediante la FormatProvider propiedad.

Expresiones regulares y máscaras

Aunque puede usar expresiones regulares y máscaras para validar la entrada del usuario, no son completamente equivalentes. Las expresiones regulares pueden expresar patrones más complejos que las máscaras, pero las máscaras pueden expresar la misma información de forma más concisa y en un formato culturalmente relevante.

En la tabla siguiente se comparan cuatro expresiones regulares y la máscara equivalente para cada una.

Expresión regular Máscara Notas
\d{2}/\d{2}/\d{4} 00/00/0000 El / carácter de la máscara es un separador de fecha lógico y aparecerá al usuario como separador de fecha adecuado para la referencia cultural actual de la aplicación.
\d{2}-[A-Z][a-z]{2}-\d{4} 00->L<LL-0000 Fecha (día, abreviatura del mes y año) en Estados Unidos formato en el que se muestra la abreviatura de tres letras del mes con una letra mayúscula inicial seguida de dos letras minúsculas.
(\(\d{3}\)-)?\d{3}-d{4} (999)-000-0000 Estados Unidos número de teléfono, código de área opcional. Si el usuario no desea escribir los caracteres opcionales, puede escribir espacios o colocar el puntero del mouse directamente en la posición de la máscara representada por el primer 0.
$\d{6}.00 $999,999.00 Valor de moneda en el intervalo de 0 a 999999. Los caracteres de moneda, milésima y decimal se reemplazarán en tiempo de ejecución por sus equivalentes específicos de la referencia cultural.

Consulte también