2016-08-11 2 views
-2

Sie möchten E-Mail-Felder validieren, in denen der Benutzer beliebige Arten von E-Mails eingeben kann. Meine Validierungsprüfung mit Regex schlägt fehl, wenn Benutzer eine eingefügte E-Mail-Adresse aus Outlook kopiert. E-Mail-Adresse aus Outlook kopiert sieht anders aus alsÜberprüfen Sie die aus Outlook kopierte E-Mail-Adresse

M, Karan <[email protected]> 

Und mein Eingang sieht aus wie [email protected],M, Karan <[email protected]>. Wie validiere ich diese Eingabe?

++ Code hinzufügen Schnipsel

Bin vorbei einzelne E-Mails, indem sie es mit Kommaseparator auf unter Funktion Aufspalten

function validateEmail(email) { 
    var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;  
    return re.test(email); 
} 

Diese Logik brach, als E-Mails in Eingabeelement aus Outlook kopiert.

Ich freue mich auf Hilfe.

+0

Diese Frage ist zu vage. Bitte geben Sie Beispiele für Ihren Code oder Code, den Sie ausprobiert haben. – Twisty

+0

Danke für Ihre Antwort. Ich habe gerade Code-Snippet hinzugefügt, die verwenden. Wie beim Hinzufügen von Mobile sehe ich keine Formatierungsoptionen für Code-Snippets. Entschuldigung. – Krupa

+0

Ich schlage vor, Sie brechen die Zeichenfolge. Sie müssen möglicherweise mehrere Durchgänge durchführen. Zunächst wissen wir, dass bestimmte Zeichen nicht in einer E-Mail-Adresse enthalten sein können. Räume sind der erste offensichtliche Charakter. Ich würde die Zeichenfolge auf die Leerzeichen aufteilen, jeden testen, um zu sehen, ob es eine E-Mail ist. – Twisty

Antwort

0

1. Lösung Verwenden regelmäßig wie dieser Ausdruck (aber konkret diese regex ist nicht die beste der Welt :)):

^(([a-zA-Z\-0-9,.: ])*<){0,1}(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))>{0,1}$ 

2. Lösung schreiben JavaScript-Funktion, die E-Mail analysieren und dann benutze deinen regulären Ausdruck. Hier ist ein Beispiel für die Analysefunktion:

function parseEmail(origin) { 
    return origin.substring(origin.lastIndexOf('<')+1, origin.lastIndexOf('>')); 
} 
Verwandte Themen