Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    reg.exp sulla data megaincasinata

    ho trovato questa reg.exp(che faccio fatica a capire, data anche la sua lunghezza) x confrontare una data inserita in una text-box:
    codice:
    var re = new RegExp("^(((((([1-9])|([0][1-9])|([1][0-9])|([2][0-8]))/(([1-9])|([0][1-9])|([1][0-2])))|((([2][9])|([3][0]))/(([1])|([3-9])|([0][1])|([0][3-9])|([1][0-2])))|((([3][1]))/(([13578])|([0][13578])|([1][02]))))/(([1][9][0-9][0-9])|([2][01][0-9][0-9])))|(([2][9])/(([2])|([0][2]))/(((([1][9])|([2][01]))(([2468][048])|([13579][26])|([0][48])))|([2][0][0][0]))))$");
    tramite questa riesco a controllare che la data sia nei seguenti formati:
    01/02/2003
    1/2/2003
    01/2/2003
    1/02/2003

    io vorrei che il numero relativo all'anno potesse accettare anche 1,2 o 3 cifre(e non solo di 4 come è ora).

    come faccio???

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non so se sono ancora in tempo a darti una risposta. Fino a ieri ero in ferie (e stavo anche molto bene).

    La RE e` molto complessa, infatti, ma serve per controllare anche che febbraio abbia solo 28 giorni (non ho controllato, ma forse testa anche l'anno bisestile consentendo per febbraio 29 giorni).

    Per come la vedo io hai due possibilita`:
    - cercare una RE piu` semplice (che pero` fa meno controlli)
    - modificare l'anno prima di darlo in pasto alla RE

    Esempio per il punto 2:
    var dd = document.NOMEFORM.NOMECAMPO.value; // stringa da modificare
    var dt = dd.split(/[\/\.\-]/)[2];
    var aa = parseInt(dt[2], 10);
    if(aa<10) aa+=2000;
    else if(aa<100) aa+=1900;
    dd = ""+dt[0]+"/"+dt[1]+"/"+aa;
    // ora dd va passato attraverso la RE di cui sopra.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    grazie.
    avevo già provveduto modificando l'anno
    grazie mille cmq

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 © 2024 vBulletin Solutions, Inc. All rights reserved.