Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 31

Discussione: reg exp per data

  1. #21
    Originariamente inviato da Braco
    mettila così var re5digit = new RegExp("^([1-31])$");

    dà errore già col 4

  2. #22
    Utente bannato L'avatar di Braco
    Registrato dal
    Oct 2005
    Messaggi
    1,697
    Originariamente inviato da Prazision
    dà errore già col 4
    Con quali non da errore?

  3. #23
    Originariamente inviato da Braco
    Con quali non da errore?
    con il 2 non lo dava

    ora vado, ti leggo dopo

    grazie mille

  4. #24
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Braco
    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.
    dubito fortemente che [1-31] sia l'intervallo da 1 a 31: [1-31] matcha al massimo 1, 2 oppure 3.

    scrivi così:
    codice:
    function checkdata(){
    
        var re5digit=/^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[012])\/(19|20|21)\d{2}$/;
        data = document.forms["item1"].starting_date;
    
        if (!re5digit.test(data.value)) {
          alert("Please enter a valid data");
          data.focus();
          return false;
       }
    }
    quell'espressione regolare controlla già intrinsecamente la lunghezza e il fatto che il campo non sia vuoto
    Occhio all'escape delle slash in avanti e all'apice e al dollaro che delimitano la regexp.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #25
    domani provo, grazie

  6. #26
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    se ti vuoi allenare con le espressioni regolari prova anche questa
    codice:
    //------------------------------------------------
    //valida la stringa dateStr
    //------------------------------------------------
    function IsDate(dateStr)
    {
    	var datePat = /^((3[01]|[12]\d|0?[1-9])\/(0?[13578]|10|12)\/(\d\d)?\d\d|(30|[12]\d|0?[1-9])\/(0?[469]|11)\/(\d\d)?\d\d|(2[0-8]|[01]\d|0?[1-9])\/(0?2)\/(\d\d)?\d\d|29\/(0?2)\/(1200|1600|2000|2400|2800|00)|29\/(0?2)\/(\d\d)?(0[48]|[2468][048]|[13579][26]))$/;
        var matchArray = dateStr.match(datePat); 
    	return !(matchArray == null);
    	
    }
    Pietro

  7. #27
    la soluzione proposta da fcaldera funziona (quasi) ma prende l'anno di 3 cifre e non da 4

    quella di pietro09 (stupenda, guarda anche le corrispondenze tra mesi e giorni) funziona ma accetta anche una cosa tipo 1/09/2001 (mentre a me servirebbe 01/09/2001); ho ovviato a questo problema controllando che ci siano 10 caratteri nella stringa passata (dovrebbe bastare)

    grazie tantissimo a tutti per l'aiuto

  8. #28
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Prazision
    la soluzione proposta da fcaldera funziona (quasi) ma prende l'anno di 3 cifre e non da 4
    mi fai vedere come l'hai scritta?
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  9. #29
    Originariamente inviato da fcaldera
    mi fai vedere come l'hai scritta?
    ho fatto copia e incolla dalla tua

  10. #30
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    allora probabilmente hai un errore nel codice restante...
    se provi a copiare l'esempio seguente, la regexp accetta solo anni a 4 cifre

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <title>xhtml 1.0</title>
            
            
            <script type="text/javascript">
            // <![CDATA[
            function checkdata(dt){
    
                var re5digit=/^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[012])\/(19|20|21)\d{2}$/;
                data = document.getElementById(dt);
    
                if (!re5digit.test(data.value)) {
                  alert("Please enter a valid data");
                  data.focus();
                  return false;
               }
               else {
                  alert('la regexp accetta questa data');
               }
            }
            // ]]>
            </script>
        </head>
    
    <body>
    
    <input type="text" value="10/08/1978" id="data" />
    <input type="button" value=" check " onclick="checkdata('data');" />
    
    </body>
    </html>
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.