Expresiones Regulares: Guía Práctica y Referencia

Conceptos Fundamentales

Las expresiones regulares (regex o regexp) son patrones de texto que definen cadenas de caracteres. Combinan caracteres ordinarios y metacarácteres para realizar búsquedas, coincidencias y manipulaciones de texto complejas de manera concisa.

Sintaxis Básica

Los metacarácteres ^ y $ marcan el inicio y el final de una cadena, respectivamente. Por ejemplo, ^Patrón busca coincidencias al comienzo, Patrón$ busca al final, y ^Patrón$ exige una coincidencia exacta de toda la cadena.

Los cuantificadores *, + y ? controlan la repetición de un elemento. a* coincide con cero o más "a", a+ con una o más "a", y a? con cero o una "a". Para rangos específicos, se utilizan llaves: a{3} coincide exactamente con tres "a", a{2,4} con entre dos y cuatro "a", y a{2,} con dos o más "a".

El operader | define una alternancia (OR lógico). El patrón gato|perro coincide con "gato" o "perro". Los paréntesis () se usan para agrupar subpatrones. El metacarácter . coincide con cualquier carácter único (excepto una nueva línea en muchos contextos).

Los corchetes [] definen un conjunto de caracteres. [abc] coincied con "a", "b" o "c". [a-z] coincide con cualquier letra minúscula. Un ^ al inicio dentro de los corchetes niega el conjunto: [^0-9] coincide con cualquier carácter que no sea un dígito. Para incluir caracteres literales que normalmente son especiales (como . o *), se escapan con una barra invertida: \..

Patrones de Validación Comunes

A continuación se presentan patrones útiles para validar formatos de datos habituales.

Validación Numérica

Patrón Regex Descripción
^[0-9]+$ Solo dígitos (uno o más).
^\d{n}$ Exactamente n dígitos.
^\d{n,}$ Al menos n dígitos.
^\d{m,n}$ Entre m y n dígitos.
^(0|[1-9]\d*)$ Un número entero no negativo sin ceros a la izquierda.
^-?\d+$ Un entero (positivo, negativo o cero).
^-?\d+(\.\d+)?$ Un número de punto flotante (entero o decimal).

Validación de Caracteres y Cadenas

Patrón Regex Descripción
^[\u4e00-\u9fa5]+$ Solo caracteres chinos.
^[A-Za-z]+$ Solo letras (mayúsculas o minúsculas).
^[A-Z]+$ Solo letras mayúsculas.
^[a-z]+$ Solo letras minúsculas.
^[A-Za-z0-9]+$ Letras y números.
^\w+$ Caracteres de palabra (letras, números y guión bajo).
^.{3,20}$ Una cadena de entre 3 y 20 caracteres de cualquier tipo.

Formatos Específicos

Patrón Regex Descripción
^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ Dirección de correo electrónico.
^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ URL (formato básico).
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$ Número de teléfono móvil (ejemplo para ciertas regiones).
^\d{4}-\d{1,2}-\d{1,2} Fecha en formato AAAA-MM-DD.
^\d{15}$|^\d{18}$|^\d{17}(\d|X|x)$ Número de identificación (ejemplo para 15 o 18 dígitos).
^[a-zA-Z][a-zA-Z0-9_]{4,15}$ Nombre de usuario (empieza con letra, 5-16 caracteres alfanuméricos o guion bajo).

Aplicación en Desarrollo Web

Validación en Formularios HTML

Se puedan utilizar expresiones regulares en el atributo pattern de los elementos <input> de HTML5 para la validación del lado del cliente.

<!-- Solo permite números -->
<input type="text" id="campoNumero" pattern="\d*" title="Solo se permiten números">

<!-- Permite letras y números -->
<input type="text" id="campoAlfanumerico" pattern="[A-Za-z0-9]+" title="Solo letras y números">

Uso en JavaScript

En JavaScript, se crean objetos RegExp o se usan literales entre barras (/patrón/) para realizar coincidencias con métodos como test() o exec().

function validarSoloDigitos(texto) {
    const patron = /^\d+$/;
    return patron.test(texto);
}

function validarFormatoCorreo(correo) {
    // Patrón simplificado para demostración
    const patron = /^[\w.-]+@[\w.-]+\.\w+$/;
    return patron.test(correo);
}

// Ejemplo de uso para extraer información
const url = "https://ejemplo.com/pagina?id=123";
const patronParametro = /[?&]id=(\d+)/;
const coincidencia = url.match(patronParametro);
if (coincidencia) {
    console.log("ID encontrado:", coincidencia[1]); // Salida: "123"
}

Las expresiones regulares son una herramienta poderosa pero que puede volverse compleja. Es recomendable probar los patrones rigurosamente con diferentes casos de entrada y utilizar herramientas de depuración o sitios especializados para su validación.

Etiquetas: Regex validacion patrones JavaScript html-input-validation

Publicado el 7-20 11:08