Dieses Mal bringe ich Ihnen JS mit, um eine reguläre Verifizierungs-E-Mail/E-Mail-Adresse zu erstellen. Welche Vorsichtsmaßnahmen gibt es für die Verwendung von JS, um eine reguläre Verifizierungs-E-Mail/E-Mail-Adresse zu erstellen?
Die Regeln sind wie folgt definiert:
mit Großbuchstaben [A-Z], Kleinbuchstaben [a-z], Zahlen [0-9], Unterstrich [_], und Minuszeichen Es beginnt mit [-] und einem Punkt [.] und muss ein- oder mehrmals wiederholt werden [+].
muss das @-Symbol in der Mitte enthalten.
@ müssen Großbuchstaben [A-Z], Kleinbuchstaben [a-z], Zahlen [0-9], Unterstrich [_], Minuszeichen [-] und Punkt [ folgen .] und muss ein- oder mehrmals wiederholt werden [+].
muss mit einem Punkt [.] enden, der 2 bis 4 Ziffern von Groß- und Kleinbuchstaben [A-Za-z]{2,4} verbindet.
Verwenden Sie die oben genannten Regeln, um den folgenden regulären Ausdruck zu erhalten:
var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
Vollständiger Testcode
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title> </head> <body> <p id="main"></p> <script> var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; w("pattern.test('cn42du@163.com') = "+pattern.test('cn42du@163.com')+";"); w("pattern.test('ifat3@sina.com.cn') = "+pattern.test('ifat3@sina.com.cn')+";"); w("pattern.test('ifat3.it@163.com') = "+pattern.test('ifat3.it@163.com')+";"); w("pattern.test('ifat3_-.@42du.cn') = "+pattern.test('ifat3_-.@42du.cn')+";"); w("pattern.test('ifat3@42du.online') = "+pattern.test('ifat3@42du.online')+";"); w("pattern.test('毛三胖@42du.cn') = "+pattern.test('毛三胖@42du.cn')+";"); function w(val) { document.getElementById("main").innerHTML += val +"<br />"; } </script> </body> </html>
Testergebnis:
pattern.test('cn42du@163.com') = true;
pattern.test('ifat3@sina.com.cn') = true;
pattern.test('ifat3.it@163 . com') = true;
pattern.test('ifat3_-.@42du.cn') = true;
pattern.test('ifat3@42du.online') = false;
pattern. test ('Mao Sanpang@42du.cn') = false;
pattern.test('cn42du@163.com') = true;
pattern.test('ifat3@sina.com.cn') = true;
pattern.test('ifat3.it@163.com') = true;
pattern.test('ifat3_-.@42du.cn') = true;
pattern.test(' ifat3@42du.online') = false;
pattern.test('Mao Sanpang@42du.cn') = false;
Anleitung für Option 1
Schema 1 ist das am häufigsten verwendete E-Mail-Überprüfungsschema für reguläre Ausdrücke und eignet sich für die meisten Anwendungsszenarien. Wie aus dem obigen Test hervorgeht, unterstützt dieser Ausdruck keine Domänennamen, die auf .online und .store enden. Wenn Sie mit dieser Art von Domainnamen (mehr als 4 Ziffern) kompatibel sein müssen, passen Sie einfach den Einschränkungsteil am Ende des regulären Ausdrucks {2,4} an (zum Beispiel: {2,8}). Ein weiteres Problem besteht darin, dass E-Mail-Benutzernamen keine chinesischen Zeichen enthalten dürfen.
Option 2 (überarbeitete Option 1)
Die Regeln werden wie folgt ergänzt:
Benutzernamen können Chinesisch enthalten [u4e00 -u9fa5 ]
Das Ende des Domainnamens kann bis zu 8 Zeichen lang sein {2,8}
Der aktualisierte reguläre Ausdruck lautet wie folgt folgt:
var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;
Vollständiger Testcode
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title> </head> <body> <p id="main"></p> <script> var pattern = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/; w("pattern.test('cn42du@163.com') = "+pattern.test('cn42du@163.com')+";"); w("pattern.test('ifat3@sina.com.cn') = "+pattern.test('ifat3@sina.com.cn')+";"); w("pattern.test('ifat3.it@163.com') = "+pattern.test('ifat3.it@163.com')+";"); w("pattern.test('ifat3_-.@42du.cn') = "+pattern.test('ifat3_-.@42du.cn')+";"); w("pattern.test('ifat3@42du.online') = "+pattern.test('ifat3@42du.online')+";"); w("pattern.test('毛三胖@42du.cn') = "+pattern.test('毛三胖@42du.cn')+";"); function w(val) { document.getElementById("main").innerHTML += val +"<br />"; } </script> </body> </html>
Testergebnis:
pattern.test('cn42du@163.com') = true;
pattern .test('ifat3@sina.com.cn') = true;
pattern.test('ifat3.it@163.com') = true;
pattern.test(' ifat3_-.@42du.cn') = true;
pattern.test('ifat3@42du.online') = true;
pattern.test('Mao Sanpang@42du.cn') = true;
Option 3 (Sicherheit)
Bevor der Mobiltelefon-Verifizierungscode erschien, war die E-Mail-Verifizierung fast die einzige Bedingung, um die Einzigartigkeit des Benutzers sicherzustellen. Das Aufkommen temporärer Postfächer (auch 10-Minuten-Postfächer oder Wegwerfpostfächer genannt) macht den Mechanismus der Postfachüberprüfung und Kontoaktivierung bedeutungslos. Die Adressen temporärer E-Mail-Adressen sind nicht aufzählbar, daher können wir eine Whitelist nur verwenden, um nur einer begrenzten Anzahl von E-Mail-Domänennamen die Überprüfung zu ermöglichen.
Zusätzliche Regeln gemäß Option 1:
Der E-Mail-Domänenname darf nur 163.com, qq.com oder 42du.cn sein.
Der reguläre Ausdruck wird wie folgt angegeben:
var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/;
Vollständiger Testcode
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)</title> </head> <body> <p id="main"></p> <script> var pattern = /^([A-Za-z0-9_\-\.])+\@(163.com|qq.com|42du.cn)$/; w("pattern.test('cn42du@163.com') = "+pattern.test('cn42du@163.com')+";"); w("pattern.test('ifat3@sina.com.cn') = "+pattern.test('ifat3@sina.com.cn')+";"); w("pattern.test('ifat3.it@163.com') = "+pattern.test('ifat3.it@163.com')+";"); w("pattern.test('ifat3_-.@42du.cn') = "+pattern.test('ifat3_-.@42du.cn')+";"); w("pattern.test('ifat3@42du.online') = "+pattern.test('ifat3@42du.online')+";"); w("pattern.test('毛三胖dd@42du.cn') = "+pattern.test('毛三胖@42du.cn')+";"); function w(val) { document.getElementById("main").innerHTML += val +"<br />"; } </script> </body> </html>
Testergebnis:
pattern.test('cn42du@163.com') = true; pattern.test('ifat3@sina.com.cn') = false; pattern.test('ifat3.it@163.com') = true; pattern.test('ifat3_-.@42du.cn') = true; pattern.test('ifat3@42du.online') = false; pattern.test('毛三胖dd@42du.cn') = false;
Obwohl die Überprüfung nach Schema 3 die Sicherheit gewährleisten kann, wenn die Whitelist ebenfalls vorhanden ist long führt dazu, dass die Musterzeichenfolge zu lang wird. Zu diesem Zeitpunkt können Sie die Whitelist für E-Mail-Domänennamen als Array schreiben, reguläre Ausdrücke für die vorläufige Überprüfung verwenden und die Whitelist für die sekundäre Überprüfung des Domänennamens verwenden.
Die E-Mail-Verifizierungsfunktion sieht jetzt wie folgt aus:
var isEmail = function (val) { var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; var domains= ["qq.com","163.com","vip.163.com","263.net","yeah.net","sohu.com","sina.cn","sina.com","eyou.com","gmail.com","hotmail.com","42du.cn"]; if(pattern.test(val)) { var domain = val.substring(val.indexOf("@")+1); for(var i = 0; i< domains.length; i++) { if(domain == domains[i]) { return true; } } } return false; } // 输出 true isEmail(cn42du@163.com);
Die obige isEmail()-Funktion listet 11 häufig verwendete E-Mail-Domänennamen auf. Sie können sie nach Bedarf hinzufügen oder löschen.
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Kapseln Sie den Vue2-Routing-Navigations-Hook und verwenden Sie ihn im tatsächlichen Kampf
Das obige ist der detaillierte Inhalt vonJS führt die Verifizierung der E-Mail-Adresse/E-Mail-Adresse regelmäßig durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!