Introducción
Las expresiones regulares (#RegExp) son la forma correcta de validar campos de texto tales como nombres, direcciones, números de teléfono, etcétera. Pueden usarse para obligar la entrada, aplicar reglas de formato, y mucho más. Hay varios métodos de cómo validar información. Este documento es una breve introducción a la clase de System.Text.RegularExpressions.Regex
y muestra cómo utilizar expresiones regulares.
Clase Regex
La clase Regex representa una expresión regular de sólo lectura. Contiene también métodos estáticos que permiten utilizar otras clases de expresiones regulares sin crear explícitamente instancias de objetos de las otras clases.
En el siguiente ejemplo de código se utiliza el método Regex.IsMatch
para comprobar si una cadena tiene el formato de correo electrónico válido. El método IsValidEmail
devuelve el valor true
si la cadena contiene una dirección de correo electrónico válida; en caso contrario, devuelve false
y no realiza más acciones. Puede utilizar IsValidEmail
para filtrar las direcciones de correo electrónico que contienen caracteres no válidos antes de que la aplicación almacene las direcciones en una base de datos o las muestre en una página ASP.NET.
Visual Basic
bool IsValidEmail(string strIn) { // Return true if strIn is in valid e-mail format. return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); }
C#
Function IsValidEmail(strIn As String) As Boolean ' Return true if strIn is in valid e-mail format. Return Regex.IsMatch(strIn, "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$") End Function
Ejemplos de expresiones regulares
Uso | Expresión | Ejemplo |
---|---|---|
Correo electrónico | "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(( [a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$" |
Por ejemplo [email protected] |
URL | "^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])* (:(0-9)*)*(\/?)( [a-zA-Z0--\.\?\,\'\/\\\+&%\$#_]*)?$" |
Por ejemplo http://www.microsoft.com |
Contraseña segura (mas o menos) | "(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$" |
Entre 8 y 10 caracteres, por lo menos un dígito y un alfanumérico, y no puede contener caracteres especiales |
Fecha (EEUU) | "^\d{1,2}\/\d{1,2}\/\d{2,4}$" |
Por ejemplo 01/01/2005 |
Moneda – valor monetario | "^(-)?\d+(\.\d\d)?$" |
+ o – cantidad, sin ningún símbolo. Si tiene punto decimal, requiere 2 caracteres numéricos después del punto decimal |
Número de tarjeta de crédito | "^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\d{2}-?\s?\d{6}-?\s?\d{5}$" |
Número tarjeta de crédito como Amex, Visa, MasterCard, Discover |
Número de teléfono (Francia) | "^0[1-6]{1}(([0-9]{2}){4})|((\s[0-9]{2}){4})|((-[0-9]{2}){4})$" |
|
Número de teléfono (España) | ""^[0-9]{2,3}-? ?[0-9]{6,7}$" |
|
Número de teléfono (EEUU) | "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$" |
|
Código postal (Francia) | "^(F-)?((2[A|B])|[0-9]{2})[0-9]{3}$" |
|
Código postal (Italia) | "^(V-|I-)?[0-9]{4}$" |
|
Código postal (Alemania) | "\b((?:0[1-46-9]\d{3})|(?:[1-357-9]\d{4})|(?:[4][0-24-9]\d{3})|(?: [6][013-9]\d{3}))\b" |
|
Código postal (España) | "^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$" |
|
Código postal (EEUU) | "^(\d{5}-\d{4}|\d{5}|\d{9})$|^([a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d)$" |
|
Número seguridad social (Francia) | "^((\d(\x20)\d{2}(\x20)\d{2}(\x20)\d{2}(\x20)\d{3}(\x20)\d{3} ((\x20)\d{2}|))|(\d\d{2}\d{2}\d{2}\d{3}\d{3}(\d{2}|)))$" |
|
Número seguridad social (EEUU) | "^\d{3}-\d{2}-\d{4}$" |
|
Tarjeta de identificación (Francia)) | "^([0-9a-zA-Z]{12})$" |
Por ejemplo 001234567000 |
Tarjeta de identificación (Italia) | "^([0-9a-zA-Z]{12})$" |
Por ejemplo AR 1234567 |
Número pasaporte (Francia) | "^([a-zA-Z]{2})\s([0-9]{7})$" |
Por ejemplo 123456789 |
IBAN (Alemania) | "DE\d{2}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{2}|DE\d{20}" |
Por ejemplo DE1201220666990123456789 |
IBAN (España) | "ES\d{2}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}[ ]\d{4}|ES\d{22}" |
Por ejemplo ES1201220666990123456789 |
Certificado de Identificación Fiscal (Italia) | "^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3} [A-Za-z]{1}$" |
|
Certificado de Identificación Fiscal (España) | "^(X(-|\.)?0?\d{7}(-|\.)?[A-Z]|[A-Z](-|\.)?\d{7}(-|\.)?[0-9A-Z]|\d{8}(-|\.)?[A-Z])$" |
. . .
8 comentarios
La lista de ejemplos, terriblemente util para gente como yo que siempre se nos han atravesado un poco las expresiones regulares.
Gracias Henry
De nada Miguel.
Me alegra ser útil.
La lista de ejemplos, terriblemente util para gente como yo que siempre se nos han atravesado un poco las expresiones regulares.
Gracias Henry
De nada Miguel.
Me alegra ser útil.