Espressione regolare orario

giovedì 17 aprile 2008 - 15.12

allevaldo Profilo | Junior Member

qualcuno mi sa aiutare per costruire una espressione regolare per validare un orario javascript presente in una textbox??

la stringa deve essere HH:MM:SS o col punto è uguale...

e le ore tra 0 e 24
i minuti e i secondi tra 0 e 59

aiedail92 Profilo | Expert

Ciao

Se ore, minuti e secondi devono essere per forza di due cifre, puoi usare questa:

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

se invece si possono inserire cifre singole non precedute da 0, usa quest'altra:

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

Luca

Wamba Profilo | Expert

Ciao,
Questa dovrebbe fare al caso tuo:
^(([0-1]?[0-9])|(2[0-4]))(:|\.)[0-6]?[0-9](:|\.)[0-6]?[0-9]$

accetta ore tra 0 e 24 con una o 2 cifre, minuti e secondi da 0 a 60 con una o due cifre e come separatore : o .
Se hai bisogno te la spiego pezzo pezzo

qui trovi una pagina per provarla:
http://www.regular-expressions.info/javascriptexample.html
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

Wamba Profilo | Expert

aiedail92 oggi è giornata di rispste doppie !
Per altro la tua è migliore perchè mi sono appena accorto di aver sbagliato e di accettare 24 per le ore e 60 per i minuti e secondi ed è anche più elegante!
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

aiedail92 Profilo | Expert

>aiedail92 oggi è giornata di rispste doppie !

Stavo per dirlo io

Comunque ho notato anche una piccola imprecisione nella mia: mancano gli ancoramenti a inzio e fine stringa, provvedo subito a correggere:

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

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

Luca

allevaldo Profilo | Junior Member

questa è sbagliata?

/^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/

Wamba Profilo | Expert

Se non vuoi che l'utente non possa indicare le 1:5:3 (con una cifra) ma sono 01:05:03 (due cifre per ogni elemento), mi sembra valida. Anche se non l'ho testata
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

aiedail92 Profilo | Expert

No, è corretta, si differenzia da quella che ti ho dato io per i gruppi di cattura e per il fatto che questa non accetta il punto come separatore, comunque funziona.

Luca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5