使用javascript,我们如何从字符串中删除@ gmail.com或@ aol.com,以便只保留名称?
var string = "johndoe@yahoo.com";
Run Code Online (Sandbox Code Playgroud)
将只是"johdoe"?我试过分裂,但结果并不好.谢谢.
Rok*_*jan 70
var email = "john.doe@email.com";
var name = email.substring(0, email.lastIndexOf("@"));
var domain = email.substring(email.lastIndexOf("@") +1);
console.log( name ); // john.doe
console.log( domain ); // email.com
Run Code Online (Sandbox Code Playgroud)
上述过程也适用于有效的包含姓名@
(tools.ietf.org/html/rfc3696 第5页)
john\@doe
"john @@".doe
"j @ hn".d\@e
Jos*_*ers 10
您应该注意,有效的电子邮件地址是一个非常复杂的对象,可能包含多个@
符号(参见http://cr.yp.to/im/address.html).
"地址的域名部分是决赛之后的所有内容
@
."
因此,你应该做一些相当于:
var email = "johndoe@yahoo.com";
var name = email.substring(0, email.lastIndexOf("@"));
Run Code Online (Sandbox Code Playgroud)
甚至更短,
var name = email.replace(/@[^@]+$/, '');
Run Code Online (Sandbox Code Playgroud)
如果你想要名称和域/主机名,那么这将工作:
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 */
}
Run Code Online (Sandbox Code Playgroud)
使用拆分的另一种选择:
var email = "john.doe@email.com";
var sp = email.split('@');
console.log(sp[0]); // john.doe
console.log(sp[1]); // email.com
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27819 次 |
最近记录: |