Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: reg exp per data

  1. #1

    reg exp per data

    function checkdata(){

    var re5digit=/(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20|21)[0-9]{2}/

    if((document.forms["item1"].starting_date.value.length!=10)
    && (document.forms["item1"].starting_date.value!="") &&(document.forms["item1"].starting_date.value.search(re5digit)==-1)){

    alert("Please enter a valid data")
    document.forms["item1"].starting_date.focus();
    return false;

    }
    }

    mi serve la data in questo formato dd/mm/yyyy

    quindi 10 caratteri,giorni da 1 a 31, mesi da 1 a 12, anno dal 1000 al 9999 e come separatore '/'

    la funzione che ho fatto sopra non funziona; qualcuno ha un'idea?


    grazie (il massimo sarebbe anche calcolare i giorni del mese, tipo che novembre non può avrne più di 30 ma non penso si possa fare)

  2. #2
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Re: reg exp per data

    Originariamente inviato da Prazision
    function checkdata(){

    var re5digit=/(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20|21)[0-9]{2}/

    if((document.forms["item1"].starting_date.value.length!=10)
    && (document.forms["item1"].starting_date.value!="") &&(document.forms["item1"].starting_date.value.search(re5digit)==-1)){

    alert("Please enter a valid data")
    document.forms["item1"].starting_date.focus();
    return false;

    }
    }

    mi serve la data in questo formato dd/mm/yyyy

    quindi 10 caratteri,giorni da 1 a 31, mesi da 1 a 12, anno dal 1000 al 9999 e come separatore '/'

    la funzione che ho fatto sopra non funziona; qualcuno ha un'idea?


    grazie (il massimo sarebbe anche calcolare i giorni del mese, tipo che novembre non può avrne più di 30 ma non penso si possa fare)
    Prova questa, sostituisci "nomeCampo" con il tuo:

    function ceckdata(){
    var f = document.forms;
    var re5digit = new RegExp("^([1-31]+)[/]([1-12]+)[/]([1000-9999]+)(novembre[1-30]+)$");
    if(!f.nomeCampo.value.match(re5digit)){
    f.nomeCampo.style.backgroundColor='#e2e2e2'
    alert("Inserire una data valida");
    f.nomeCampo.focus();
    return false;
    }
    return true;
    }

    http://fido.altervista.org/RegExp/regex.html

  3. #3

    Re: Re: reg exp per data

    Originariamente inviato da Braco
    Prova questa, sostituisci "nomeCampo" con il tuo:

    function ceckdata(){
    var f = document.forms;
    var re5digit = new RegExp("^([1-31]+)[/]([1-12]+)[/]([1000-9999]+)(novembre[1-30]+)$");
    if(!f.nomeCampo.value.match(re5digit)){
    f.nomeCampo.style.backgroundColor='#e2e2e2'
    alert("Inserire una data valida");
    f.nomeCampo.focus();
    return false;
    }
    return true;
    }

    http://fido.altervista.org/RegExp/regex.html
    non funziona, mi da l'alert anche se metto una data valida

    cmq grazie

  4. #4
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Re: Re: Re: reg exp per data

    Originariamente inviato da Prazision
    non funziona, mi da l'alert anche se metto una data valida

    cmq grazie
    prova togli questo

    return true;
    }

  5. #5

    Re: Re: Re: Re: reg exp per data

    Originariamente inviato da Braco
    prova togli questo

    return true;
    }
    avveo già provato

  6. #6
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697

    Re: Re: Re: Re: Re: reg exp per data

    Originariamente inviato da Prazision
    avveo già provato
    Rimettilo e fai una prova semplice, togli la parte in rosso ed inserisci un numero che non è fra 1 e 31, poi inseriscilo giusto, vediamo

    var re5digit = new RegExp("^([1-31]+)[/]([1-12]+)[/]([1000-9999]+)(novembre[1-30]+) $");

  7. #7
    con 1111 non da errore

    con 34 sì

    guarda che io chiamo questa funzione sull'onclick del submit

  8. #8
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697
    Originariamente inviato da Prazision
    con 1111 non da errore

    con 34 sì

    guarda che io chiamo questa funzione sull'onclick del submit
    A me funziona, vedi se i nomi sono a posto...

  9. #9
    mah non mi funziona, ci deve essere qualcosa di sbagliato nella mia pagina

    grazie cmq

  10. #10
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697
    Originariamente inviato da Prazision
    mah non mi funziona, ci deve essere qualcosa di sbagliato nella mia pagina

    grazie cmq
    Funziona perchè di prima dici che con dei numeri risponde, c'è da sistemare la reg. fai una cosa, per le prove usa questo:

    var re5digit = new RegExp("^([1-31]+)$"); e guarda il link che ti ho postato, modifica la reg, modifica solo ciò che è nelle parentesi quadre.

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.