[英]regular expression to match emails
我遇到了特殊的问题,我有用户名字段,只有字母数字和。 - 和_是允许的,应始终以字母开头
这里是接受的例子
someone@mydomain.com
something1234@mydomain.com
someething.something@mydomain.com
something-something@mydomain.com
something_something@mydomain.com
something_1234@mydomain.com
something.123@mydomain.com
something-456@mydomain.com
到目前为止我所做的是
[a-zA-Z0-9]+[._-]{1,1}[a-zA-Z0-9]+@mydomain.com
除了问题匹配之外,这符合我的所有要求
someone@mydomain.com
someont123@mydomain.com
但它甚至匹配
someone_someone_something@mydomain.com
这不是必需的我真的没有得到如何解决我试过的这一件事
[a-zA-Z0-9]+[._-]{0}[a-zA-Z0-9]+@mydomain.com
但这也没有解决我的问题现在它接受了一切
something+455@mydomain.com
这不是必需的,请帮帮我
如果你想做-
或.
可选,那么你必须用一个?
替换{1,1}
(量词:一次) ?
(量词:一个或没有)这里:
[a-zA-Z0-9]+[._-]?[a-zA-Z0-9]+@mydomain.com
这个正则表达式也匹配没有分隔符-._
较短地址的原因是你没有断言整个字符串,而只是它的一部分。 使用start ^
和end $
anchors:
^[a-zA-Z0-9]+[._-]?[a-zA-Z0-9]+@mydomain\.com$
这就是我们有filter_var($email, FILTER_VALIDATE_EMAIL)
。
如果电子邮件地址有效,那么您只需检查它是否以@domain.com
结尾。 这可以通过strrpos($email, '@domain.com')
完成strrpos($email, '@domain.com')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.