2010-01-12 15 views
6

Sto provando a creare una funzione javascript con espressione regolare per convalidare e formattare l'orario 24 ore, accettando i tempi senza punto e virgola e rimuovendo gli spazi.
Esempi:
Se l'utente digita "0100", " 100" o "100 " sarebbe stato accettato, ma formattato per "01:00"
Se l'utente "01:00" sarebbe accettato, senza bisogno di formato.Funzione Javascript per convalidare l'ora 00:00 con espressione regolare

Grazie.

+3

cosa succede se l'utente digita 25:78 - un tempo non valido? – Amarghosh

risposta

21

function formatTime(time) { 
 
    var result = false, m; 
 
    var re = /^\s*([01]?\d|2[0-3]):?([0-5]\d)\s*$/; 
 
    if ((m = time.match(re))) { 
 
     result = (m[1].length === 2 ? "" : "0") + m[1] + ":" + m[2]; 
 
    } 
 
    return result; 
 
} 
 
alert(formatTime(" 1:00")); 
 
alert(formatTime("1:00 ")); 
 
alert(formatTime("1:00")); 
 
alert(formatTime("2100")); 
 
alert(formatTime("90:00")); // false

Qualsiasi chiamata con il formato di input non valido restituisce false.

+0

Ho risolto il problema che "27:00" non è valido. – OcuS

+0

Ah, mi hai battuto. –

+0

Grazie Ocus, questa funzione fa il lavoro. – Amra

Problemi correlati