Javascript 重写regex以接受有条件条款

Javascript 重写regex以接受有条件条款,javascript,regex,Javascript,Regex,这与当前匹配xxxx@yahoo.com,如何重写此内容以匹配其他域?例如,gmail.com和deadforce.com。我尝试了以下方法,但没有成功,我做错了什么 ^([a-z0-9_\.-])+@[yahoo]{5}\.([com]{3}\.)?[com]{3}$ 提前谢谢你 电子邮件验证是一个众所周知的难题,许多人在尝试自己验证电子邮件时失败得很惨 Filter var有一个仅用于电子邮件的筛选器。用它来检查电子邮件地址的有效性。看 用简单的方法进行域检查可能没有什么坏处。只需检查电子

这与当前匹配xxxx@yahoo.com,如何重写此内容以匹配其他域?例如,gmail.com和deadforce.com。我尝试了以下方法,但没有成功,我做错了什么

^([a-z0-9_\.-])+@[yahoo]{5}\.([com]{3}\.)?[com]{3}$

提前谢谢你

电子邮件验证是一个众所周知的难题,许多人在尝试自己验证电子邮件时失败得很惨

Filter var有一个仅用于电子邮件的筛选器。用它来检查电子邮件地址的有效性。看

用简单的方法进行域检查可能没有什么坏处。只需检查电子邮件地址中的域字符串。e、 g

if (filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)) {
    // Email is valid
}
就您原来的正则表达式而言,它有很多是不正确的,这就是为什么您在更改它时遇到困难的原因。 显示您创建的内容

if (
    filter_var($email, FILTER_VALIDATE_EMAIL) &&
    preg_match("/@(yahoo|gmail|deadforce)\.com/", $email)
) {
    // Email is valid
}
()仅在本节中捕获结果。如果需要结果,请移动括号,如果不需要,请删除括号

([a-z0-9_\.-])+ should be [a-z0-9_\.-]+ or ([a-z0-9_\.-]+)
这匹配了5个字符,是y,a,h,o中的一个,所以它会匹配hayoo等

[yahoo]{5} should be yahoo
不知道这是想实现什么,但你只想要.com


查看http://www.regular-expressions.info/tutorial.html以获取正则表达式指南

您的正则表达式没有说出您认为它所说的内容

\.([com]{3}\.)?[com]{3} should be \.com
将任何字符
a-z
0-9
-
说一次或多次

后面您尝试匹配yahoo.com的部分是不正确的。它表示
y
a
h
o
,这些字符中的任何一个都允许使用5次。与
com
相同,所以
aaaaaaa.ooo
在这里有效。我不确定
([com]{3}\)?[com]{3}
想说什么,但我猜您想检查
.com

请参阅此处的字符类文档

你想要的是

^([a-z0-9_\.-])+@[yahoo]{5}\.([com]{3}\.)?[com]{3}$
或者对于更多域,使用分组

^([a-z0-9_.\-])+@yahoo\.com$
您还没有说明您使用的是什么语言,因此无法提供真实的演示


功能演示,

关于使用正则表达式验证电子邮件地址,有很多答案。您将问题标记为“javascript”和“php”-是哪个?还可以看到可能的副本,我已经根据您的JS规范添加了一个演示。如果你有问题,请发帖。
^([a-z0-9_.\-])+@yahoo\.com$
^([a-z0-9_.\-])+@(yahoo|gmail|deadforce)\.com$