Test Email plus rapide

Résolu
cs_cbu Messages postés 394 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 novembre 2009 - 10 janv. 2007 à 16:18
cs_cbu Messages postés 394 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 novembre 2009 - 10 janv. 2007 à 18:15
Bonjour,
jusqu'à maintenant j'utilisais cela :

<hr size="2" width="100%" />    ' Teste si la valeur est un Email
    Public Shared Function IsEmail(ByVal Value As String) As Boolean
        Dim objIntPattern As New System.Text.RegularExpressions.Regex("^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$")
        Return objIntPattern.IsMatch(Value)
    End Function<hr size="2" width="100%" />

pour tester la validité d'un email .. Mais lorsque je m'en suis servi pour afficher un tableau de 8000 enregistrements car je ne veux pas de paging.. l'affichage de ma page et ma fonction qui teste un champs du tableau :

If MaRegExp.IsEmail(lstrText) Then
End If

met 3,80 min à s'afficher alors qu'en tant normal (sans le test) cela met 4sec
connaissez vous une méthode plus rapide pour un test d'email ?
cela peut en laisser passer quelques une c'est juste pour de l'affichage..

Merci

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
10 janv. 2007 à 18:00
Bonjour,

tu peux eventuellement tester avec une regexp un peu plus simple car la elle me semble bien compliqué, tu peux en trouver sur www.regexlib.com ensuite il faut savoir ce que tu as dans tes 8000 enregistrements si tu as beaucoup d'email invalide ca va etre facile à traiter, tu peux faire des pré-test rapide avant de faire le test complet.

par exemple
if( s.length > 5 && s.indexOf([mailto:'@' '@']) > 0 && s.indexOf('.') > 0){
      // ici le gros test      
}

déjà en faisant comme ca, tu vas épurer rapidement ta liste d'emails. Mais ca n'optimisera pas beaucoup si tu as très peu d'email invalide dans ce cas il faudra plutot jouer avec la complexité de la regexp en sachant qu'il se peu qu'il y ait des adresses invalides :s

Mais il est souvent plus judicieux de vérifier l'adresse e-mail lors de l'insert, généralement on fait moins d'insert que d'affichage et par conséquent on valide l'email moins souvent :-)
<hr />Cyril - MVS - MCP
3
cs_cbu Messages postés 394 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 novembre 2009 1
10 janv. 2007 à 18:15
Bon avec cette expression : ^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$ c'est beaucoup plus rapide ;)
Merci Cyril
cela met 3,8sec
3
cs_cbu Messages postés 394 Date d'inscription mercredi 30 janvier 2002 Statut Membre Dernière intervention 4 novembre 2009 1
10 janv. 2007 à 18:05
okay .. En attendant de trouver un bon test, j'ai fais à peu près le test que tu as mis en test unique ^^
Mais pour la vérification à l'insert, cela est un peu complexe car je migre une BD.. Je sors les exceptions mais d'ici à ce qu'elles soient corrigées, c'est pas Bysance.

Mici
A peluche
0
Rejoignez-nous