Regex para hora (24 horas HH:MM)

Usa /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/ para comprobar que una cadena completa es una hora válida (24 horas HH:MM). Cada ejemplo de abajo se ha probado con el patrón, y puedes abrirlo en el Probador de Regex con las muestras ya cargadas.

Actualizado el

/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/
Abrir en el Probador de Regex
EntradaResultado
00:00✓ Coincide
23:59✓ Coincide
14:30:15✓ Coincide
09:05✓ Coincide
24:00✗ No coincide
9:30✗ No coincide
12:60✗ No coincide
12:30:60✗ No coincide

Cómo funciona el patrón

ParteSignificado
(?:[01]\d|2[0-3])Horas 00–23
:Dos puntos
[0-5]\dMinutos 00–59
(?::[0-5]\d)?Segundos opcionales

Ejemplos de código

JavaScript

const re = /^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?', value))

PHP

preg_match('/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/', $value) === 1;

Notas y limitaciones

Haz opcional el cero inicial con (?:[01]?\d|2[0-3]) si los usuarios escriben 9:30.

Preguntas frecuentes

¿Cuál es la regex para la hora (24 horas HH:MM)?
/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/ — coincide con la cadena completa. Consulta la tabla de arriba para ver qué hace cada parte.
¿Qué ejemplos coinciden?
De los ejemplos probados, coinciden estos: 00:00, 23:59, 14:30:15, 09:05. Los demás no.
¿Cómo pruebo esta regex?
Haz clic en “Abrir en el Probador de Regex”: el patrón, los flags y el texto de muestra se cargan automáticamente, y las coincidencias se resaltan mientras editas.