Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163

    Controllo sintassi di un indirizzo EMAIL

    salve ragazzi!!
    eccomi di nuovo qui ... spero mi possiate aiutare!!

    ho cercato il modo di effettuare un controllo su un bottone, al cui click si dovrebbe controllare la giusta sintassi di un indirizzo mail inserito in una textfield; ho trovato vari script in java o php, come per esempio:


    1)
    codice:
    #!usr/bin/perl 
    print "Inserire l'indirizzo e mail:\n"; 
    $mail = <STDIN>; 
    chomp ($mail); 
    if ($mail =~ /^[a-zA-Z0-9_]{1,}@[a-z.]{1,}\.[a-z]{1,4}$/){ 
    print "Sintassi della mail corretta.\n"; 
    } 
    else { 
    print "Sintassi della mail errata.\n"; 
    }
    2)
    codice:
    function checkMail($email) {
    if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$", $email)) { 
    return true;
    }
    else { return false; }
    }
    codice:
    if ((empty($email)) || (!checkMail($email)))
    {
    die("Inserisci un indirizzo email valido!");
    }

    ma in ogni caso non ci sono riuscita!!!

    aiutatemi!!

  2. #2
    Devi utilizzare le espressioni regolari. Per considerare valido un indirizzo email deve avere la seguente forma:

    [indirizzo composto da numeri o lettere ]@ [dominio composto da numeri o lettere].[lettere per il paese]

    Tradotto in espressioni regolari:

    Codice PHP:
    String email "xyz@hotmail.com";
    String espressione "^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$";
    Pattern p Pattern.compile(espressione);

    Matcher m p.matcher(email);

    boolean matchFound m.matches();

    if (
    matchFound)
         
    System.out.println("Indirizzo valido");
    else
         
    System.out.println("Indirizzo errato"); 
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    grazie per l'aiuto ma non so' se il codice ke m hai dato potrebbe andare bene
    ...


    fino ad ora i controlli che ho eseguito sono stati di questo tipo, in caso i campi delle textfield siano vuote o che il campo per la password superi i 5 caratteri:

    codice:
    if(TextNominativo.getText().equals("") | TextUsername.getText().equals("")| jPasswordField1.getText().equals("")	| TextTelefono.getText().equals("")| TextFax.getText().equals("")| TextTipo_Utente.getText().equals("")| TextEmail.getText().equals("")| TextDipartimento.getText().equals("")) { 
    					               
    JOptionPane.showMessageDialog(null, "Inserisci tutti i dati","Login", JOptionPane.ERROR_MESSAGE);
    								
    								
    if((jPasswordField1.getText().length() > 5 )| (jPasswordField1.getText().length() < 5)){
    
    JOptionPane.showMessageDialog(null, "Lunghezza Password 5","Login", JOptionPane.ERROR_MESSAGE);
    potete aiutarmi a realizzare un controllo simile pero' per la mail????

    cmq sto' lavorando in eclipse ... [java]

  4. #4
    puoi usare anche semplicemente il metodo matches della classe String, ma cmq se vuoi un controllo come si deve non puoi liberarti dell'espressione regolare:

    Codice PHP:
    String espressione "^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$"

    if(
    tuoTextField.getText().matches(espressione)){
         
    //...email valida
    }else{
         
    //...email incorretta

    Un'altra cosa... le operazioni logiche di AND e OR vanno fatte col doppio operatore: && per la AND, || per la OR ... e non con & e |

    Codice PHP:
    if(TextNominativo.getText().equals("") || TextUsername.getText().equals("")|| jPasswordField1.getText().equals("")    || TextTelefono.getText().equals("")|| TextFax.getText().equals("")|| TextTipo_Utente.getText().equals("")|| TextEmail.getText().equals("")|| TextDipartimento.getText().equals("")) { 
    .... 
    Gli operatori singoli sono utilizzati per operazioni bit a bit. Ad esempio l’operatore & è utilizzato per combinare due interi bit per bit e l’operatore && è utilizzato per eseguire l’operazione di AND logico tra due espressioni booleane.
    Al mio segnale... scatenate l'inferno!

  5. #5
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    non è che abbia capito bene bene bene bene cio' che vuoi dirmi ...

  6. #6
    Originariamente inviato da 1sirena
    non è che abbia capito bene bene bene bene cio' che vuoi dirmi ...
    Riguardo il problema dell'email o quello degli operatori logici?
    Al mio segnale... scatenate l'inferno!

  7. #7
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163

    aiutooooooooooooo

    sulla mail ... qll erano esempi per far capire il tipo di controllo che avevo fatto sino ad ora ... qll cmq mi funzionano!!!

  8. #8
    Per essere valida una email deve soddisfare certi criteri e cioè:

    1) la parte prima della @ può essere composta da numeri,lettere, i segni punto (.) underscore (_) e trattino (-). Altri caratteri non sono ammessi.
    2) dopo la prima parte c'è la @ che deve essere unica
    3) dopo la @ ci possono essere numeri, lettere e il segno del trattino - . Non sono ammessi altri caratteri
    4) dopo c'è obbligatoriamente il .
    5) infine c'è una parte composta da 2 a 4 lettere

    Tutto questo viene tradotto utilizzando quelle che si chiamano le espressioni regolari. Le espressioni regolari sono un modo per descrivere delle stringhe che devono essere formattate in un certo modo. Ad esempio anche il codice fiscale di una persona deve essere scritto rispettando certe regole, regole che vengono espresse tramite una opportuna espressione regolare.

    Per non entrare troppo nei dettagli ti basta sapere che l'espressione:

    "^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}$";

    rappresenta l'espressione regolare che esprime i criteri esposti sopra.

    una qualsiasi stringa che non soddisfa quei criteri vuol dire che non "matcha" l'espressione regolare appena scritta. Per vedere se una stringa soddisfa o meno una espressione regolare, la classe String mette a disposizione il metodo matches(String regex) che riceve come parametro una stringa rappresentante proprio l'espressione regolare da soddisfare.

    Quindi per vedere se l'indirizzo email inserito nel JTextField è corretta ti basta prenderne il contenuto e verificare se soddisfa l'espressione regolare:

    Codice PHP:
    String espressione "^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}$"
    String email textFieldEmail.getText();
    if(
    email.matches(espressione)){ 
         
    //...email valida 
    }else{ 
         
    //...email incorretta 

    Per il discorso degli operatori logici, non vuol dire nulla che "ti funziona". Il modo corretto è col doppio operatore && per le AND oppure || per le OR. Sono questi che agiscono su operandi booleani.

    Al mio segnale... scatenate l'inferno!

  9. #9
    Utente di HTML.it L'avatar di 1sirena
    Registrato dal
    Mar 2008
    Messaggi
    163
    grazie RAVE ... sei SEMPRE DISPONIBILE e UTILE!!!!

  10. #10
    Originariamente inviato da 1sirena
    grazie RAVE ... sei SEMPRE DISPONIBILE e UTILE!!!!

    Di nulla
    Al mio segnale... scatenate l'inferno!

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.