Eu quero um regexp para combinar o tempo no formato HH: MM. Aqui está o que eu tenho e funciona:
^[0-2][0-3]:[0-5][0-9]$
Isso corresponde a tudo, das 00:00 às 23:59.
No entanto, quero alterá-lo para que 0:00 e 1:00, etc, também sejam correspondidos, bem como 00:00 e 01:30. Ou seja, para tornar opcional o dígito mais à esquerda, para coincidir com HH: MM e H: MM.
Alguma idéia de como fazer essa mudança? Eu preciso disso para trabalhar em javascript, bem como php.
Respostas:
Sua expressão regular original tem falhas: não corresponderia,
04:00
por exemplo.Isso pode funcionar melhor:
fonte
^([0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Expressões regulares para o tempo
HH: formato MM de 12 horas, 0 principal opcional
HH: MM formato de 12 horas, 0 à esquerda opcional, meridiems obrigatórios (AM / PM)
HH: MM 24 horas com 0 à esquerda
HH: formato MM de 24 horas, 0 opcional opcional
HH: MM: SS formato de 24 horas com 0 inicial
Referência e demonstração
fonte
^([0-2][0-3]|[0-1][0-9]):[0-5][0-9]+$
?Nenhuma das opções acima funcionou para mim. No final, eu usei:
Lógica:
O primeiro número (horas) é: um número entre 0 e 19 ->
[0-1]?[0-9]
(permitindo um número de dígito único)ou
um número entre 20 - 23 ->
2[0-3]
o segundo número (minutos) é sempre um número entre 00 e 59 ->
[0-5][0-9]
(não permitindo um único dígito)fonte
[01]
funciona tão bem;)^(0?[1-9]|1[0-2]):[0-5][0-9]$
^([0-1][0-9]|2[0-3]):[0-5][0-9]$
forçar um zero à esquerdaVocê pode usar este 24H, segundos são opcionais
fonte
O melhor seria para HH: MM sem correr nenhum risco.
fonte
^([0-1]\d|2[0-3]):[0-5]\d$
?Surpreendentemente, descobri que, na verdade, tudo isso não é suficiente, pois não funciona para um formato mais curto à meia-noite de 0: 0 e alguns também não funcionam para 00:00, usei e testei o seguinte:
fonte
Você pode usar esta expressão regular:
Se você deseja excluir 00:00, pode usar esta expressão
A segunda expressão é a melhor opção, pois o tempo válido é de 00:01 a 00:59 ou de 0:01 a 23:59. Você pode usar qualquer um destes conforme sua exigência. Link Regex101
fonte
Partidas:
Use-o:
fonte
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1); Console.WriteLine(date1.ToString("H:mm:ss", CultureInfo.InvariantCulture)); // Displays 6:09:01
. para obter mais informações, consulte o linkComo você pediu a esquerda mais opcional, eu fiz a esquerda e direita mais opcional também, confira
Combina com
O link ao vivo está disponível aqui
fonte
Você pode usar o seguinte regex:
fonte
Declarar
Este método retorna "true" quando String corresponde à Expressão Regular.
fonte
Uma pequena modificação na contribuição de Manish M Demblani acima lida com as 4 da manhã (eu me livrei da seção de segundos porque não preciso dela no meu aplicativo)
manipula: 04:00 04:00 04:00 04:00 04:30 etc ..
fonte
AM|am|aM|Am|PM|pm|pM|Pm
=[AaPp][Mm]
O regex abaixo ajudará a validar o formato hh: mm
fonte
O meu é:
^(1?[0-9]|2[0-3]):[0-5][0-9]$
Isso é muito mais curto
Testei com vários exemplos
Combine:
E não corresponde a nenhuma instância inválida, como 25:76, etc.
fonte
09:30
não correspondemVocê pode tentar o seguinte
Ele pode detectar os seguintes padrões:
fonte
verifique este regex de detector de carimbo de data / hora que eu criei para procurar um carimbo de data / hora especificado pelo usuário, exemplos do que ele incluirá, mas definitivamente não é limitado a;
Também coletará muito mais, desde que os horários incluam dígitos
fonte
RegExr requires a modern browser. Please update your browser to the latest version and try again.
... nem consigo ver ...: - /Tente o seguinte
Nota: Eu estava assumindo o mecanismo de regex javascript. Se for diferente, informe-me.
fonte
Você pode usar o seguinte regex:
Apenas a modificação que fiz é o dígito mais à esquerda é opcional. O restante da regex é o mesmo.
fonte