Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420

    espressione regolare [preg_match]

    Ciao a tutti;
    ho quest'espressione regolare per validare il formato di un'email, ma non funziona come dovrebbe:

    Codice PHP:
    preg_match(/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+.[A-Za-z]{2,5}$/$email); 
    Il problema è nella 3a parte, la validazione del dominio, che mi accetta lunghezza massima di 5, ma non quella minima di 2, ossia mi valida anche domini composti da un'unica lettera;
    Se modifico quella parte in {3,5} accetta domini di minimo 2 caratteri e così via, ma onestamente non capisco il perchè :-s

  2. #2
    Utente di HTML.it L'avatar di marty89
    Registrato dal
    Apr 2011
    Messaggi
    107
    Ciao, devi ricordarti di mettere il carattere \ di escape ai caratteri speciali (. * ? {} () [] + ^ $ | \). Quando vuoi usare uno di questi caratteri per il loro valore letterario e non, per esempio, per indicare con il + che vuoi almeno uno dei caratteri che hai specificato, devi farli precedere da \.
    Quindi nel tuo caso prova a usare questa espressione regolare
    Codice PHP:
    preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,5}$/'$email
    Spero di esserti stata di aiuto

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Ciao, grazie per la risposta...
    però non noto nessuna differenza tra la mia stringa e la tua... inoltre in quell'espressione, di caratteri speciali a parte la chiocciola non ce n'è...
    Diciamo che non è un problema fondamentale, perchè mi basta sostituire alla fine {3,5} per far si che accetti come lunghezza minima 2... era solo una curiosità per capirne il funzionamento...

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.