preg:如何编写preg模式以从电子邮件中获取域名?

Vin*_*Vin 19 javascript regex preg-match

something@gmail.com我想要获取域名的电子邮件地址gmail.com.我想在Javascript中的文本框值上使用该模式.

Pease建议我为上述要求提供优化且更快的preg模式...

And*_*ndy 55

您可以替换包括@符号在内的所有内容以获取域名.在Javascript中:

var email = 'test@gmail.com';
var domain = email.replace(/.*@/, "");
alert(domain);
Run Code Online (Sandbox Code Playgroud)


Zoi*_*erg 7

为什么不这样做呢.

var email = "something@gmail.com", i = email.indexOf("@");
if (i != -1) {
   email = email.substring(i);
}
Run Code Online (Sandbox Code Playgroud)

真正的正则表达式并不是真的需要,你也可以去 email = email.split("@")[1];

  • 为了解决Jesse Cohen提出的问题,你可以使用`email.lastIndexOf('@')+ 1`来获得最后一个`@`位置.见https://jsfiddle.net/mx6bqytg/1/ (3认同)

Dev*_*ger 5

我刚刚经历了实现这一点的需要,并提出了结合大多数已经提到的技术的解决方案:

var email = "test@test@gmail.com";
var email_string_array = email.split("@");
var domain_string_location = email_string_array.length -1;
var final_domain = email_string_array[domain_string_location];
Run Code Online (Sandbox Code Playgroud)

因此,如果电子邮件有多个 @ 字符,那么您只需将电子邮件字符串按“@”拆分并计算新创建的数组中有多少个元素,然后从中减去 1,您就可以从具有该数字的数组中取出正确的元素。

这是 jsfiddle:http : //jsfiddle.net/47yqn/

它对我来说是 100% 的成功!