espressione regolare: come trovare il carattere nullo

Salve

Ho la necessita di controllare un campo di un form nel quale l'utente deve inserire la data in formato gg-mm-aaaa. Per fare questo basta inserire la seguente espressione regolare: /^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$/

Problema: il form deve essere accettato anche se l'utente non inserisce nessun carattere nella data. Coma fare per controllare questa situazione?

Grazie  :)

inviato 9 anni fa
Assolollo
X 0 X

per verificare se una stringa è vuota basta fare così:

if(!trim($_POST['data'])
   echo "la stringa è vuota!";

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Carissimo Gianni

il controllo della regolarità del formato data viene fatta con javascript tramite l'evento onClick nel momento in cui l'utente preme il pulsante di invio. Se l'utente non ha inserito la data correttamente, non esisterà nessun POST.

In altre parole javascript deve far passare la stringa nel campo data in due casi: il formato corretto (gg-mm-aaaa) ovvero l'assenza di qualsiasi carattere.

Avevo provato con la seguente espressione: /^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$|\0/  ma questa non funziona....  :(

risposto 9 anni fa
Assolollo
X 0 X

non avevi parlato di javascript nel primo post  :buck:

comunque la sostanza cambia poco, verifica se il valore del campo = '';

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Hai ragione, forse ho sbagliato forum, in effetti devo intervenire sul codice Javascript...  :-\

cmq, se magari sei esperto pure di javascript, ti riporto il codice che controlla il form:

Filtro = /^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$/; 

if (document.nomeform.data.value!=="") {

   if (!Filtro(document.nomeform.data.value)) { alert('Formato Data non valido');

   return false;

   }

} else if (document.nomeform.testo.value=="") { alert("Inserisci il Testo");     

return false;

}

return true;

Purtoppo le righe che controllano la data non funzionano. Cioè mi controlla il formato data se è quello giusto, ma una volta inserita la data, mi fa postare anche se il testo non è presente...    :tichedoff:

risposto 9 anni fa
Assolollo
X 0 X

dal codice che hai riportato però non si capisce come venga inibito l'invio del POST. Lo richiami con un evento onSubmit?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

questa è una funzione che richiamo con l'evento onClick nel pulsante Submit in modo che il messaggio di alert esce non appena premo sul pulsante....

risposto 9 anni fa
Assolollo
X 0 X

e poi come effettui il submit? document.form[0].submit()?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

La funzione completa è questa:

<script language="JavaScript" type="text/JavaScript">

function verifica(form){

Filtro = /^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$/;

if (document.nomeform.data.value!=="") {

   if (!Filtro(document.nomeform.data.value)) { alert('Formato Data non valido');

   return false;

   }

} else if (document.nomeform.testo.value=="") { alert("Inserisci il Testo");     

return false;

}

return true;

}

</script>

che viene richiamata attraverso il pulsante di submit:

<input type="submit" name="submit" value="  Invia  " onClick="return verifica(form);"  />

Se entrambe le condizioni restituiscono true, i dati vengono inviati via POST

risposto 9 anni fa
Assolollo
X 0 X

Devi provedere in un altro modo: togli dal bottone l'evento onclick e metti nel form l'evento onsubmit

<form onsubmit="return verifica()" ...

poi dalla funzione togli il "form":

function verifica(){

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda