Quiero una expresión regular para el tiempo de coincidencia en formato HH: MM. Esto es lo que tengo, y funciona:
^[0-2][0-3]:[0-5][0-9]$
Esto coincide con todo de 00:00 a 23:59.
Sin embargo, quiero cambiarlo para que también coincidan 0:00 y 1:00, etc., así como 00:00 y 01:30. Es decir, hacer que el dígito más a la izquierda sea opcional, para que coincida con HH: MM y H: MM.
¿Alguna idea de cómo hacer ese cambio? Necesito que esto funcione en javascript y php.
Respuestas:
Su expresión regular original tiene fallas:
04:00
por ejemplo, no coincidiría .Esto puede funcionar mejor:
fuente
^([0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Expresiones regulares por tiempo
HH: formato MM de 12 horas, 0 inicial opcional
HH: formato MM de 12 horas, 0 inicial opcional, meridiems obligatorios (AM / PM)
HH: MM 24 horas con 0 inicial
HH: formato MM 24 horas, opcional con 0 inicial
HH: MM: formato SS de 24 horas con 0 inicial
Referencia y demostración
fuente
^([0-2][0-3]|[0-1][0-9]):[0-5][0-9]+$
?Nada de lo anterior funcionó para mí. Al final usé:
Lógica:
El primer número (horas) es: un número entre 0 y 19 ->
[0-1]?[0-9]
(que permite un número de un solo dígito)o
un número entre 20 - 23 ->
2[0-3]
el segundo número (minutos) siempre es un número entre 00 y 59 ->
[0-5][0-9]
(sin permitir un solo dígito)fuente
[01]
funciona igual de bien;)^(0?[1-9]|1[0-2]):[0-5][0-9]$
^([0-1][0-9]|2[0-3]):[0-5][0-9]$
forzar un cero a laPuedes usar este 24H, los segundos son opcionales
fuente
Lo mejor sería para HH: MM sin correr ningún riesgo.
fuente
^([0-1]\d|2[0-3]):[0-5]\d$
?Sorprendentemente, descubrí que en realidad todo esto no lo cubre, ya que no funcionan para la medianoche en formato más corto de 0: 0 y algunos tampoco funcionan para las 00:00, utilicé y probé lo siguiente:
fuente
Puedes usar esta expresión regular:
Si desea excluir 00:00, puede usar esta expresión
La segunda expresión es una mejor opción porque el tiempo válido es de 00:01 a 00:59 o de 0:01 a 23:59. Puede usar cualquiera de estos según sus necesidades. Enlace Regex101
fuente
Partidos:
Úselo:
fuente
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1); Console.WriteLine(date1.ToString("H:mm:ss", CultureInfo.InvariantCulture)); // Displays 6:09:01
. para más información ver enlaceComo pediste el bit más a la izquierda opcional, también he hecho el más a la izquierda y el más a la derecha opcional, échale un vistazo
Coincide con
El enlace en vivo está disponible aquí.
fuente
Puede usar la siguiente expresión regular:
fuente
Declarar
Este método devuelve "verdadero" cuando la cadena coincide con la expresión regular.
fuente
Una ligera modificación a la contribución de Manish M Demblani anterior maneja 4am (me deshice de la sección de segundos ya que no la necesito en mi aplicación)
manijas: 4am 4 am 4:00 4:00 am 4:00 pm 4.30 am etc.
fuente
AM|am|aM|Am|PM|pm|pM|Pm
=[AaPp][Mm]
La expresión regular a continuación ayudará a validar el formato hh: mm
fuente
El mio es:
^(1?[0-9]|2[0-3]):[0-5][0-9]$
Esto es mucho mas corto
Lo probé con varios ejemplos
Partido:
Y no coincide con ninguna instancia no válida, como 25:76, etc.
fuente
09:30
no coincidenPuedes probar lo siguiente
Puede detectar los siguientes patrones:
fuente
revise esta expresión regular maestra del detector de marca de tiempo que construí para buscar una marca de tiempo especificada por el usuario, ejemplos de lo que recogerá, pero definitivamente NO se limita a;
También recogerá muchos más, siempre que los tiempos incluyan dígitos
fuente
RegExr requires a modern browser. Please update your browser to the latest version and try again.
... Ni siquiera puedo verlo ...: - /Intenta lo siguiente
Nota: Estaba asumiendo el motor de JavaScript regex. Si es diferente a eso, házmelo saber.
fuente
Puede usar la siguiente expresión regular:
La única modificación que hice es que el dígito más a la izquierda es opcional. El resto de la expresión regular es igual.
fuente