49

javascript を使用して、文字列から @gmail.com または @aol.com を削除して、名前だけが残るようにするにはどうすればよいでしょうか?

var string = "johndoe@yahoo.com";

「じょうど」だけになるの?スプリットでやってみましたが上手くいきませんでした。ありがとう。

4

8 に答える 8

11

有効な電子メール アドレスは非常に洗練されたオブジェクトであり、複数の記号が含まれている可能性があることに注意してください@(参照http://cr.yp.to/im/address.html )。

「アドレスのドメイン部分は、最後の@.

したがって、次と同等のことを行う必要があります。

var email = "johndoe@yahoo.com";
var name = email.substring(0, email.lastIndexOf("@"));

またはさらに短く、

var name = email.replace(/@[^@]+$/, '');

名前とドメイン/ホスト名の両方が必要な場合は、次のようにします。

var email = "johndoe@yahoo.com";
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 */
}
于 2013-08-22T04:33:05.323 に答える
9

また、 splitを使用した別の方法:

var email = "john.doe@email.com";
var sp = email.split('@');

console.log(sp[0]); // john.doe
console.log(sp[1]); // email.com
于 2016-12-12T15:23:50.410 に答える
4

使ってみてsubstring()indexOf()

var name = email.substring(0, email.indexOf("@"));
于 2013-08-22T04:20:06.867 に答える
1
var email = "johndoe@yahoo.com";
email=email.replace(/@.*/,""); //returns string (the characters before @)
于 2013-08-22T04:30:38.103 に答える