Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    Regular expression DA ZERO

    Salve
    ho capito che per convalidare il formato corretto di una mail si deve usare
    regular expression

    Mi potreste fare un esempio pratico partendo da zero?

    Io ho un form
    con un campo textbox che si chiama e_mail

    clicco sul pulsante invio del form
    richiamo una sub
    ed i dati della mail li inserisco in access

    posso fare in modo che in questa sub, prima di inserire i dati nel db, venga controllata la mail?

    grazie mille
    victor
    ----------------------

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    devi innanzitutto decidere se farlo lato Client, lato Server o entrambe.

    per il lato client esiste il RegularExpressionValidator. Es:
    http://forums.asp.net/t/1385954.aspx

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Lato server, un esempietto di codice da un link di quello stesso thread su citato:

    codice:
    using System.Text.RegularExpressions;
    
    Regex emailregex = new Regex("(?<user>[^@]+)@(?<host>.+)");
    String s = tuaTextbox.Text.Trim();
    
    Match m = emailregex.Match(s);
    if ( m.Success ) {
            // scrivi nel db
    } else {
            Response.Write(s + " is not a valid email address");
    }

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    devi innanzitutto decidere se farlo lato Client, lato Server o entrambe.

    per il lato client esiste il RegularExpressionValidator. Es:
    http://forums.asp.net/t/1385954.aspx

    un piccolo appunto: i validatori funzionano sia lato client, sia lato server.
    Il funzionamento lato client è facoltativo, mentre il controllo lato server si verifica sempre.

    ps. basta provare con firefox disabilitando javascript. Il validatore in questo caso va lato server.

    Insomma, funzionano bene.
    Pietro

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Originariamente inviato da pietro09
    un piccolo appunto: i validatori funzionano sia lato client, sia lato server.
    Il funzionamento lato client è facoltativo, mentre il controllo lato server si verifica sempre.

    ps. basta provare con firefox disabilitando javascript. Il validatore in questo caso va lato server.

    Insomma, funzionano bene.

    questa mi giunge nuova.

    Ok per i CustomValidator, ma gli altri funzionano lato server agganciandosi a cosa ?

    Cioe' ad esempio, un RequiredFieldValidator esegue del codice sul server ?

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da djciko
    questa mi giunge nuova.

    Ok per i CustomValidator, ma gli altri funzionano lato server agganciandosi a cosa ?

    Cioe' ad esempio, un RequiredFieldValidator esegue del codice sul server ?
    Potrei sbagliare io

    Mi riferisco a cose apprese da Francesco Balena per il 1° framework

    prima di tutto il RequiredFieldValidator è un controllo server e, come tale, lavora principalmente lato server.
    Infatti, nell'evento link di un pulsante di submit,metto:
    codice:
    Try
    	'Forza la validazione di tutti i controlli
    	'Me.Validate()
    	If Not Me.IsValid Then
    		Throw New Exception("La scheda non ha passato i controlli di validità.")
    	End If
    
    	Salvo()
    
    
    
    Catch ex As Exception
    	l.MsgBox(Me, ex)
    
    
    End Try
    nota che ho commentato l'istruzione Me.Validate(), presente nel codice di F.B. perché mi sono accorto che la validazione avviene in automatico, anche senza quella istruzione.

    La validazione lato client è un qualcosa in più, diciamo che è una pre-validazione. Quella che conta, per me è quella server.

    Con Firefox è facile fare la verifica. Disabilita javascript e nota che la validazione avviene allo stesso modo.

    Con i CustomValidator è un poco più complicato perché, oltre a implementare la validazione lato client (ma non è obbligatoria) bisogna pure implementare esplicitamente la validazione lato server (evento ServerValidate)

    ciao
    Pietro

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    beh io a FB credo, ma ricordo che la validazione avviene lato client, e si vede pure...(non so te, ma io non vedo nessun round-trip sul server)..

    La proprieta' .IsValid della classe Page contiene false se almeno una validazione in genere oppure di un controllo con "Causesvalidation=True" fallisce... Ma questa proprieta' non è la validazione in se', e' soltanto l'esito... almeno questo e' quello che ricordo io.

    E poi, scusa, se avviene sempre lato server, come mai la pagina non si ricarica ?

    Resta da scoprire perche' con js disattivato funziona.

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    E' chiaro che se è attiva la validazione lato client e la validazione ha esito negativo, il submit non parte ed è ovvio che non avviene la validazione lato server.

    Pietro

  9. #9
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Ovvio, ma ancora non ho capito quando avviene lato server e con quale logica, a parte con un customValidator..

    Ripeto, la proprietá Page.IsValid è lato server, ma è solo l'esito, non la validazione in se'

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ho fatto questa prova.
    Una pagina con un TexBox, un RequiredFieldValidator, una Label e un Button

    Lanciata la pagina, recupero l'indirizzo dei javascript inclusi.
    Recupero il javascript e "guasto" il codice.
    Alla funzione ValidatorUpdateIsValid gli faccio restituire true.
    Adesso, in fondo alla pagina, metto <script type="text/javascript" src="WebResource1.js"></script> che sovrascrive quello vero.

    Ripeto, sto simulando un javascript difettoso, che mi restituisce true invece di false.

    lato server metto questo
    codice:
        Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
            Me.Label1.Text = DateTime.Now.ToString & " " & Me.IsValid
        End Sub
    e vedo che la pagine è validata e compare pure la scritta del validatore.

    Cioè, anche se il controllo lato client dovesse fallire, sono protetto comunque lato server.
    Ecco perchè dico che funziona alla grande.
    Pietro

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.