Regex brasileiros · Biblioteca de padrões

Regex de hora (HH:MM e HH:MM:SS)

Regex de hora no formato 24 horas, HH:MM ou HH:MM:SS, com horas de 00 a 23 e minutos e segundos de 00 a 59. Não trata AM e PM.

O padrão

(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?

Flags: nenhuma. Sem âncoras: para validar um campo inteiro use ^(?:padrão)$.

Só o formato. Este regex confere a aparência do texto. Ele não prova que o dado existe nem que os dígitos verificadores estão certos. Para isso use Soma de horas.

Teste na hora

Tudo roda no seu navegador; nada do que você digita é enviado.

Exemplos

Casam

  • 08:30
  • 23:59:59
  • 00:00
  • 12:45:07

Não casam

  • 24:00
  • 8:30
  • 12:60
  • 12:5
  • 12:30:61

Como funciona, por partes

Armadilhas

Código pronto

JavaScript

const re = new RegExp("^(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?)$");
console.log(re.test(texto.trim()));

Python

import re

re_hora = re.compile(r"(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?")
print(bool(re_hora.fullmatch(texto.strip())))

C#

using System.Text.RegularExpressions;

var re = new Regex(@"^(?:(?:[01][0-9]|2[0-3]):[0-5][0-9](?::[0-5][0-9])?)\z");
bool ok = re.IsMatch(texto.Trim());

Perguntas frequentes

Como aceitar hora sem zero à esquerda?

Troque o início do padrão por (?:[01]?\d|2[0-3]). Com isso, 8:30 e 08:30 passam. Se for guardar, normalize para duas casas.

Posso usar ponto em vez de dois pontos?

Basta trocar o separador por [:.]. Cuidado: 12.30 também parece um número decimal, então isso só faz sentido quando o campo é claramente de hora.

Esse regex serve para somar horas?

Serve para conferir o formato de cada hora. A soma é outra tarefa: converta cada valor em minutos, some e converta de volta, como faz a ferramenta de soma de horas.

E se a hora vier com letras, como 8h30?

O padrão não reconhece esse formato, e de propósito: misturar letras e números abre a porta para ambiguidades. Se a sua origem usa 8h30, crie um passo de normalização que troque o h por dois pontos e complete o zero à esquerda, e só então teste. Assim a regra de validação continua curta e fácil de manter, e a conversão fica em um lugar só, onde pode ser testada com exemplos próprios.

Ferramentas

← Ver todos os padrões