Sto cercando di rendere un validatore di espressioni regolari. Il problema che sto avendo è che sto usando un campo di input con il tipo "date"
, che funziona come un fascino in Chrome; apre un calendario simile a Chrome, ma nel resto non fa nulla, quindi ho deciso di inserire un input manuale della data per il resto.Regex per convalidare la data in PHP utilizzando il formato come AAAA-MM-GG
Questo è il mio messaggio di errore di lancio (che sto cercando formato AAAA-MM-DD):
$date_regex ='#^(19|20)\d\d[\- /.](0[1-9]|1[012])[\- /.](0[1-9]|[12][0-9]|3[01])$#';
$hiredate = $_POST['hiredate'];
if (!preg_match($date_regex, $hiredate)){
$errors[] = 'Your hire date entry does not match the YYYY-MM-DD required format.';
}
So che ci sono un sacco di esempi su questo, ma ho provato come 20 e ho già non potrei risolverlo Forse mi manca qualcosa.
Ecco il campo di inserimento, se un po 'rilevanti:
<input type="date" name="hiredate" />
Perché non esplodere con - e utilizzare invece checkdate()? –
Esiste una procedura standard? L'ho trovato in un altro post ma non ha funzionato per me. Cordiali saluti, voglio lasciarli inserire come YYYY/MM/DD o YYYY.MM.DD o YYYY-MM-DD. Per non trattenerli troppo. – Cataneo
Sarebbe più semplice fornire 3 caselle separate '' con una lunghezza massima appropriata e una convalida di sola cifra che viene concatenata nel formato corretto sul back-end? È possibile aggiungere listener ad ogni casella di input per passare alla successiva se una persona ha premuto 2 cifre con la pressione di un tasto. L'utente non dà ratti su quale formato è necessario e li frusterà al meglio solo se non è il loro formato nativo personale – MonkeyZeus