Aiuto con Espressioni Regolari - RegExp

di il
8 risposte

Aiuto con Espressioni Regolari - RegExp

Ciao a tutti! Come da titolo avrei bisogno di un aiuto con le espressioni regolari, perchè essendo alle prime armi sono veramente una bella rottura! In particolare vi chiedo se potete risolvermi due domande :
1) Verificare che non ci siano valori vuoti (quindi l'invio dei dati della form non deve contenere caratteri vuoti);
2)Controllare che la login sia formata da una stringa nel formato nome.cognomeNUM dove "nome" e "cognome" sono formati da soli caratteri alfabetici minuscoli e contengono, entrambi, almeno un carattere; NUM è un numero composto da zero o piu cifre;

La soluzione alla prima richiesta che ho pensato io è
reg2 = /[^ ]/;
; mentre la soluzione per la seconda soluzione è
reg = /[a-z+\.0-9+]/;
.
La prima SEMBRA funzionare, ma la seconda non funziona in quanto non rileva in primis la presenza, o meno, del punto "." ; sinceramente mi trovo un pò in difficoltà perchè in rete ci sono si le guide che spiegano a cosa servono i singoli caratteri ecc. ecc. pero a me servirebbe una sfilza di esempi bella lunga che ci si capisce molto meglio!

P.S. Se qualcuno ha un link in cui ci sono degli esempi utili glie ne sarei grato!

8 Risposte

  • Re: Aiuto con Espressioni Regolari - RegExp

    Ciao hai provato con ([a-zA-Z0-9])+\., o meglio non ho capito bene che tipo di stringa desideri controllare
  • Re: Aiuto con Espressioni Regolari - RegExp

    Ciao! Desidero controllare stringhe formate nel seguente modo "nome.cognomeNUM" in cui il punto ci deve SEMPRE essere dopo n caratteri minuscoli, poi altri n caratteri seguiti da un numero! Grazie.
  • Re: Aiuto con Espressioni Regolari - RegExp

    2) [a-z]+\.[a-z]+[0-9]*

    Per il punto 1): beh, sei tu quello che deve studiare le espressioni regolari!





    Non ti serve una sfilza di esempi: te ne servono pochi e significativi!

    Piccola nota: assicurati di capire che cosa ho scritto, e del perche' di ogni singolo carattere, altrimenti e' stato inutile aiutarti.
  • Re: Aiuto con Espressioni Regolari - RegExp

    Hai scritto da 1 a N caratteri minuscoli, seguiti da un punto, poi ancora da 1 a N caratteri minuscoli seguiti da 0 a N numeri! Non avevo compreso che potevo separare gli intervalli [ ] in più parti! Grazie mille sei stato molto chiaro!
  • Re: Aiuto con Espressioni Regolari - RegExp

    migliorabile ha scritto:


    2) [a-z]+\.[a-z]+[0-9]*

    Per il punto 1): beh, sei tu quello che deve studiare le espressioni regolari!





    Non ti serve una sfilza di esempi: te ne servono pochi e significativi!

    Piccola nota: assicurati di capire che cosa ho scritto, e del perche' di ogni singolo carattere, altrimenti e' stato inutile aiutarti.
    Riprendo la discussione perchè sono ancora in crisi! il metodo .test() delle RegExp ritorna "true" se tutta la stringa rientra nell'espressione regolare o anche solo una parte?
    Esempio:
    [cia] con la stringa "ciao" tornerebbe "true" giusto? e se volessi invece che se non è IDENTICA a ciò che chiede l'espressione regolare mi venga ritornato "false" come mi devo comportare?
    Per quanto riguarda gli spazi ho trovato il semplice esempio [ \t\n\r\f\v] che però non funziona, o meglio, ho stampato a video cosa torna il metodo "test()" passandogli una form con i campi vuoti e ritorna "false" , ma come "false" ? Se i campi sono tutti vuoti dovrebbe tornare "true" !?!?
    
    function checkEmpty(form) {
        var exp = /[ \t\n\r\f\v]/;
        
        var username = form.username.value;
        var password = form.password.value;
        
        var resUsername = exp.test(username);
        var resPassword = exp.test(password);
        alert(resUsername+"-"+resPassword);
        if(!resUsername || !resPassword) {
                return false;
        } else {
                return true;
        }
    };
    Ecco la function in questione! Qui si verifica che username e password non siano campi vuoti, ma se invio la form con username e password vuoti il risultato del test è "false", quando invece dovrebbe essere "true", visto che l'espressione regolare è soddisfatta.
  • Re: Aiuto con Espressioni Regolari - RegExp

    Ti stai perdendo in un bicchiere d'acqua ed evidentemente NON HAI ANCORA APERTO IL LIBRO o letto la documentazione sulle espresdioni regolari!

    E' OVVIO perche' la regexp '[ \t\n\r\f\v]' non ha un match con la stringa vuota ''!
  • Re: Aiuto con Espressioni Regolari - RegExp

    No, evidentemente il "libro" non ce l'ho! Comunque sia io per gli spazi uso [^ \t\n\r\f\v]...che praticamente mi sta a dire che accetta tutto tranne quei caratteri inclusi nel range.
  • Re: Aiuto con Espressioni Regolari - RegExp

    Sbagliato! Non accetta tutto tranne..., ma accetta qualunque CARATTERE tranne....

    Ti consiglio di studiarti come funzionano le regexp partendo da qualche buon libro (i Internet, in versione PDF ne trovi quanti ne vuoi ), perche' per tentativi ti richiederebbe eoni.

    Non sono difficili, ma decisamente non banali!
Devi accedere o registrarti per scrivere nel forum
8 risposte