Usa los patrones como punto de partida y pruébalos en tu motor. Coincidir con un formato no demuestra que una dirección, fecha o cuenta sea válida.
Se ejecuta localmente en tu navegador| Caso de uso | Expresión regular | Notas |
|---|---|---|
| Dirección de correo | ^[^\s@]+@[^\s@]+\.[^\s@]+$ |
Comprobación sintáctica práctica; la entrega requiere verificación. |
| URL HTTP o HTTPS | ^https?:\/\/[^\s]+$ |
Comprueba el esquema y rechaza espacios; utiliza un parser de URL para una validación completa. |
| Dirección IPv4 | ^(?:(?:25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|1?\d?\d)$ |
Acepta octetos de 0 a 255. |
| UUID versiones 1–5 | ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$ |
Comprueba el formato estándar con guiones y los bits de variante RFC. |
| Fecha con formato ISO | ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ |
Comprueba el formato YYYY-MM-DD, no el número de días específico de cada mes. |
| Hora de 24 horas | ^(?:[01]\d|2[0-3]):[0-5]\d$ |
Acepta valores entre 00:00 y 23:59. |
| Color hexadecimal | ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$ |
Admite las notaciones RGB, RRGGBB y RRGGBBAA. |
| Versión semántica | ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$ |
Coincide con versiones base y metadatos opcionales de prerelease y build. |
| Entero con signo | ^-?\d+$ |
Permite un signo menos opcional. |
| Número decimal | ^-?(?:\d+|\d*\.\d+)$ |
Acepta enteros y fracciones decimales, incluidos valores como .5. |
| Slug de URL | ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
Palabras ASCII en minúsculas separadas por guiones simples. |
| Etiqueta similar a HTML | <\/?[A-Za-z][^>]*> |
Útil solo para extracciones sencillas; procesa HTML con un parser HTML. |
| Espacios iniciales o finales | ^\s+|\s+$ |
Usa el modificador global para eliminar espacios en ambos extremos. |
| Línea vacía | ^\s*$ |
Usa el modo multilínea para evaluar cada línea por separado. |
| Palabra adyacente repetida | \b([A-Za-z]+)\s+\1\b |
Usa el modo sin distinción de mayúsculas si no importa la capitalización. |
JavaScript, PCRE, Python, Java, .NET, Go y Ruby no implementan exactamente las mismas funciones regex. Comprueba el motor de destino antes de utilizar lookbehind, grupos con nombre, propiedades Unicode, cuantificadores posesivos o modificadores inline.
En validaciones sensibles para la seguridad, normaliza primero la entrada, aplica límites de longitud explícitos y utiliza un parser específico cuando el formato disponga de uno.
Quince patrones listos para los valores que suelen aparecer en un formulario, una línea de log o un archivo de configuración: correo electrónico, URL HTTP o HTTPS, dirección IPv4, UUID versiones 1-5, fecha con formato ISO, hora de 24 horas, color hexadecimal, versión semántica, entero con signo, número decimal, slug de URL, etiqueta similar a HTML, espacios iniciales o finales, línea vacía y palabra adyacente repetida.
La tabla es toda la página: no hay campo donde escribir ni nada que ejecutar. Cada fila indica qué comprueba su patrón y qué deja pasar, porque coincidir con un formato no es validar un dato real. La fila de fecha acepta 2024-02-31 y la de correo no puede saber si una dirección recibe mensajes, así que toma el patrón como punto de partida y pruébalo en el motor que lo vaya a ejecutar.
La fila IPv4 acepta 0.0.0.0 y 255.255.255.255 y rechaza 256.1.1.1, 1.2.3 y 1.2.3.4.5. La fila UUID exige la forma con guiones, un dígito de versión entre 1 y 5 y un nibble de variante RFC igual a 8, 9, a o b, así que los identificadores de versión 6 y 7 no coinciden. La fila de versión semántica acepta 1.0.0, 1.0.0-alpha.1 y 1.0.0+build.1, mientras que v1.0.0 y 01.0.0 fallan.
Varias filas son laxas a propósito. 2024-02-31 pasa la fila de fecha porque el patrón desconoce la longitud de los meses, y 2024-13-01 no pasa. La fila de hora espera dos dígitos: 09:30 coincide y 9:30 no. La fila de entero rechaza +5, la de decimal acepta .5 y rechaza 5., y la de slug mantiene un solo guion y letras en minúscula.
El filtro lee la fila completa, no solo su título: «octet» encuentra la fila IPv4 por su nota, «^https» encuentra la fila de URL por el propio patrón y «blank» encuentra la fila de línea vacía. El contador indica el total de 15, Escape limpia el campo cuando tiene el foco y el botón Limpiar hace lo mismo en pantalla táctil.
El botón de la fila copia únicamente la expresión regular, con sus anclas y sin comillas añadidas, de modo que el resultado puede ir directo al código, a un archivo de pruebas o a una regla de validación. El caso de uso y la nota se quedan en la página: son contexto, no parte del patrón.
Tres filas solo cumplen su función con las banderas adecuadas: la de espacios iniciales o finales necesita la bandera global para recortar ambos extremos, la de línea vacía necesita el modo multilínea para que ^ y $ se evalúen en cada línea, y la de palabra repetida necesita la bandera de ignorar mayúsculas para leer «The the» como repetición.
El límite mayor es la portabilidad. Lookbehind, grupos con nombre, propiedades Unicode y cuantificadores posesivos no se implementan igual en JavaScript, PCRE, Python, Java, .NET, Go y Ruby, y un patrón copiado de esta página arrastra las suposiciones del motor para el que fue escrito. Consulta la documentación del motor de destino y mantén la expresión en una prueba que recorra las cadenas que tu servicio ve de verdad.