Bonjour,

Pour les besoins d'un projet, j'ai besoin de pouvoir parser une liste d'adresse mail.

USE case :

mail@mail.com -> true
mail@mail.com, -> true
mail@mail.com; -> true
mail@mail.com,mail@mail.com;mail@mail.com -> true
mail@mail.commail@mail.com -> false
mail@mail.com mail@mail.com; -> true
;mail@mail.com,mail@mail.com;mail@mail.com -> false

Séparateur : [;,]

Actuellement, elle ressemble à cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
var email = "[A-Za-z0-9\._%-]+@[A-Za-z0-9\.-]+\.[A-Za-z]{2,4}";
var re = new RegExp('^'+email+'([;,]{1}\\n*'+email+')*[;,]?$');
Ça marche dans tout les cas, excepté un qui est censé marcher : mon_mail@mail.com;dfg & mon_mail@mail.com;dfg qui me renvois true alors qu'il devrait pas...

Use case concerné :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
mon_mail@mail.com;d           Renvois false
mon_mail@mail.com;df          Renvois true
mon_mail@mail.com;dfg        Renvois true
mon_mail@mail.com;dfgs      Renvois true
mon_mail@mail.com;dfgop    Renvois false
J'ai l'impression qu'il considère que c'est la fin de l'adresse mail (si j'ai 2 à 4 caractères derrière le [,;], il est content, sinon non.)

Du coup j'ai du mal à piger.

Si quelqu'un à quelques secondes / minutes pour m'aider la dessus :-)