Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107

    [JS] Espressione regolare per data

    Salve a tutti!

    Vorrei inserire, in un contesto di un form, un campo data che venga controllata da un'espressione regolare che rispetti lo standard AAAA-MM-GG.

    Possibilmente che controlli anche la validità dei valori immessi (MM deve essere fra 01 e 12... GG fra 01 e 31... ma questo posso farlo io

    Le espressioni regolare con JS non le ho ancora affrontate, mi date una mano?
    Guybrush Threepwood

  2. #2
    qui trovi una raccolta di reg-exp per il riconoscimento delle date. Link
    scegli, quella che più si avvicina alle tue esigenze.


  3. #3
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Ma che cosa bella! Fissa nei preferiti!!!

    danke!
    Guybrush Threepwood

  4. #4
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Problema di applicazione.

    Il controllo che mi va bene è questo : ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})

    <html><body>
    <form id="f" name="f" method="post" action="">
    <input type="text" name="uno" />
    <input type="button" name="Submit" value="Invia" onclick="
    mystring = document.f.uno.value;
    if (mystring.match([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}))) {
    alert('match');
    }
    ">
    </form>
    </body></html>
    Se faccio così mi da errore.. in pratiaca vuole la chiusura di una fatidica parentesi dopo il primo [0-9].

    da firefox (idem con IE):
    Errore: missing ) after argument list
    File sorgente: test.htm
    Riga: 2, Colonna: 24
    Codice sorgente:
    if (mystring.match([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}))) {
    Guybrush Threepwood

  5. #5
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    idem se faccio una semplice dichiarazione :

    codice:
    myregexp = (([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}));
    Guybrush Threepwood

  6. #6
    io di solito faccio cosi:
    codice:
    var reg=/^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})$/;
    if(reg.test(myString)){...}
    metto al reg-exp in una variabile per comodità, ma puoi anche metterla prima di .test

  7. #7
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Molto meglio

    Le regex sono una cosa che devo studiarmo per bene da qui a breve.... trovare il tempo
    Guybrush Threepwood

  8. #8
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Ultima cosa (spero) , ho questa regex :

    ^\d{3,5}\,\d{2}$)|(^\d{3,5}$)

    permette numeri del tipo

    100,00
    100
    99999,99

    Come posso modificarla per IMPORRE sempre la virgola e 2 numeri?



    Parentesi : così a occhio c'è qualcosa che non quaglia in questa regex perchè la prima parenetsi chiusa non è mai aperta...
    Guybrush Threepwood

  9. #9
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Ho provato a crearne una io :

    codice:
    var reg=/^d,\d{2}$/;
    in questo modo mi fallisce sempre la validazione anche di 9999,99.... dove sbaglio?

    L'obiettivo, ripeto, è di far inserire numeri maggiori di 0 e SEMPRE con 2 decimali...
    Guybrush Threepwood

  10. #10
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Risolto!

    var reg=/^\d{1,20},\d{2}$/;
    Guybrush Threepwood

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.