ciao a tutti
è da poco che uso javascript. Potreste farmi un esempio di come sostituire una stringa tipo 12092004 con una nel formato 12/09/2004
mediante esp regolare associata all'evento onblur?
grazie a tutti in anticipo
ciao a tutti
è da poco che uso javascript. Potreste farmi un esempio di come sostituire una stringa tipo 12092004 con una nel formato 12/09/2004
mediante esp regolare associata all'evento onblur?
grazie a tutti in anticipo
Una delle possibili soluzioni (non certo la piu' elegante)
ciaocodice:<input type=text onblur="pippo(this)"> <script> function pippo(obj) { v = obj.value.replace(/\//g, ''); obj.value = v.replace(/^(\d{4})/,'$1\/').replace(/^(\d{2})/,'$1\/'); } </script>
Il guaio per i poveri computers e' che sono gli uomini a comandarli.
Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
Consultate la discussione in rilievo: script / discussioni utili
Usate la funzione di Ricerca del Forum
Perche` vuoi una Regexp?
comunque si puo` fare:Puoi chiamare la funzione da un campo testo cosi`:codice:function changedate(tt) { var str = tt.value; var o = str.match(/(\d{2})(\d{2})(\d{4})/); if (o == 'null') { return "errore stringa"; } else { return o[0]+"/"+o[1]+"/"+o[2]; } }
<input type="text" onchange="this.value=changedate(this);" />
In teoria puoi usare anche onblur, ma potrebbe avere effetti collaterali.
per evitare qualche effetto collaterale, la RE potrebbe diventare:
/(\d{2})\/?(\d{2})\/?(\d{4})/
PS. Ho visto adesso che ha risposto anche br1 (sono stato interrotto al telefono): la soluzione di br1 e` piu` compatta, la mia piu` elegante: provale tutte due.
Ciao
Michele
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
grazie tante ragazzi
vado subito a provarle!![]()
Devo dire che programmo da relativamente poco tempo e non ho alcuna esperienza di esp reg... pensavo fosse la soluzione migliore
Si puo` anche lavorare sulla stringa :
<input ... onchange="s=this.value.replace(/\//g,''); this.value= s.substr(0,2)+'/'+s.substr(2,2)+'/'+s.substr(4);">
Ricalca un po' il metodo di Bruno, ma usa la RE solo per togliere eventuali slash, mentre per aggiungerle usa le sottostringhe.
Anche in questo caso io userei onchange anziche` onblur (inutile fare il conto se non vi sono state modifiche alla stringa).
Ciao
Michele
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati