Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [javascript] esp reg

  1. #1
    phpiano
    Guest

    [javascript] esp reg

    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

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Una delle possibili soluzioni (non certo la piu' elegante )
    codice:
    <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>
    ciao
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Perche` vuoi una Regexp?

    comunque si puo` fare:
    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];
      }
    }
    Puoi chiamare la funzione da un campo testo cosi`:
    <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

  4. #4
    phpiano
    Guest
    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.