Sie sollten zur Kenntnis nehmen, dass eine gültige E-Mail-Adresse ein unglaublich anspruchsvolle Aufgabe und kann mehrere @
Zeichen (ref enthalten. http://cr.yp.to/im/address.html).
"Der Domain-Teil einer Adresse ist alles nach dem letzten @
."
var email = "[email protected]";
var name = email.substring(0, email.lastIndexOf("@"));
oder noch kürzer,
var name = email.replace(/@[^@]+$/, '');
Wenn Sie sowohl den Namen und die Domain/Host-Namen, dann wird diese Arbeit:
Daher sollten Sie etwas Gleichwertiges tun:
var email = "[email protected]";
var lasta = email.lastIndexOf('@');
var name, host;
if (lasta != -1) {
name = email.substring(0, lasta);
host = email.substring(lasta+1);
/* automatically extends to end of string when 2nd arg omitted */
} else {
/* respond to invalid email in some way */
}
lesen Was war das Problem, das Sie mit 'Split hatte ('@')'? – icedwater
@icedwater das Problem mit '.split ('@')' ist, dass '@' als Teil des * Name/Adresse * wie in 'im @ home @ example.com' erlaubt ist - in diesem Fall 'Split' kann nicht stellen Sie sicher, dass das '[0]' - Ergebnis der tatsächliche vollständige Zeichenfolgenname 'im @ home' ist, aber stattdessen nur 'im' ergibt. –