Php Regexp有效电子邮件检查
我尝试使用以下regexp代码检查电子邮件是否有效Php Regexp有效电子邮件检查,php,regex,validation,email,email-validation,Php,Regex,Validation,Email,Email Validation,我尝试使用以下regexp代码检查电子邮件是否有效 /[0-9A-Za-z-_.]{1,64}[\@][0-9a-zA-Z\-]{1,63}[\.][a-zA-Z\-]{2,24}/ 但在测试中,我看到像test-@gmail.com或test-.@gmail.com或test-.@gmail.com或test.@gmail.com或之类的无效电子邮件。test@gmail.com标记为有效 我认为没有一封有效的电子邮件是开始或结束时,而不是像--或__u;或-。或者。- 我能做些什么使它更好
/[0-9A-Za-z-_.]{1,64}[\@][0-9a-zA-Z\-]{1,63}[\.][a-zA-Z\-]{2,24}/
但在测试中,我看到像test-@gmail.com
或test-.@gmail.com
或test-.@gmail.com
或test.@gmail.com
或之类的无效电子邮件。test@gmail.com
标记为有效
我认为没有一封有效的电子邮件是开始或结束时,而不是像--或__u;或-。或者。-
我能做些什么使它更好?为什么不使用 请参见此处的过滤器定义 验证该值是否为有效的电子邮件地址 通常,这会根据RFC中的语法验证电子邮件地址 822,除了注释和空格折叠和 不支持无点域名 为什么不使用 请参见此处的过滤器定义 验证该值是否为有效的电子邮件地址 通常,这会根据RFC中的语法验证电子邮件地址 822,除了注释和空格折叠和 不支持无点域名 试试这个:
^(|(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})$
另一种方式:
^(|(([A-Za-z0-9]+)|([A-Za-z0-9]+)|([A-Za-z0-9]+(\.[_a-z0-9-]+)+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})$
不匹配:
test-.@gmail.com
test.@gmail.com
test__@gmail.com
__--.test@gmail.com
john__doe@gmail.com
john..doe@xuse.de
john--doe@xuse.de
test_test@gmail.com
匹配:
12test21@gmail.com
1.test@gmail.com
test.test@gmail.com
试试这个:
^(|(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})$
另一种方式:
^(|(([A-Za-z0-9]+)|([A-Za-z0-9]+)|([A-Za-z0-9]+(\.[_a-z0-9-]+)+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6})$
不匹配:
test-.@gmail.com
test.@gmail.com
test__@gmail.com
__--.test@gmail.com
john__doe@gmail.com
john..doe@xuse.de
john--doe@xuse.de
test_test@gmail.com
匹配:
12test21@gmail.com
1.test@gmail.com
test.test@gmail.com
“我能做些什么使它更好?”---你不能用regexp验证电子邮件。你的大多数例子都是有效的电子邮件。@AlexHowansky你是怎么得出这个观点的?你有没有尝试过通过outlook.com或gmail.com注册这些电子邮件?@zerkms这是什么答案?你还有什么好主意;-)“你是如何得出这个观点的?”见第6.1节。“我能做些什么使它更好?”---你不能用regexp验证电子邮件。你的大多数例子都是有效的电子邮件。@AlexHowansky你是如何得出这个观点的?你有没有尝试过通过outlook.com或gmail.com注册这些电子邮件?@zerkms这是什么答案?你还有什么好主意;-)“你是怎么得出这个观点的?”见第6.1节。嗨,谢谢你的回答。在普通的PHP项目中,我会说这是最好的答案,但在我们的情况下是不可用的。我搜索一个合适的正则表达式代码来使用。我知道有时候本机函数不够严格。我想也许“注释、空格折叠和无点域名不受支持的例外情况”部分可以满足您的需求。还是个不错的选择:)@Mann87为什么它不可用?你的问题中没有任何限制。@AlexHowansky是的,我在问题中忘记了。很抱歉由于代码结构和php版本的原因,它不可用。所以我真的需要一个exp.@Mann87
filter\u var()
从10年前的v5.2.0开始就在PHP中使用——如果您使用的是比这个版本旧的版本,那么您需要担心的问题要严重得多……您好,谢谢您的回答。在普通的PHP项目中,我会说这是最好的答案,但在我们的情况下是不可用的。我搜索一个合适的正则表达式代码来使用。我知道有时候本机函数不够严格。我想也许“注释、空格折叠和无点域名不受支持的例外情况”部分可以满足您的需求。还是个不错的选择:)@Mann87为什么它不可用?你的问题中没有任何限制。@AlexHowansky是的,我在问题中忘记了。很抱歉由于代码结构和php版本的原因,它不可用。所以我真的需要一个exp.@Mann87filter\u var()
从10年前的v5.2.0开始就在PHP中使用——如果您使用的是比这个版本更旧的版本,那么您需要担心的问题要严重得多……感谢我尝试过这个版本,它比我以前使用的版本工作得更好。非常感谢你,约翰__doe@gmail.com,约翰。。doe@xuse.de还有约翰--doe@xuse.de仍然有效,但也是一封注册无效的电子邮件。@Mann87您希望它不带,。
和-
对吗?我用另一种方式更新了我的问题,请检查一下,谢谢,我试过这个,它比我以前用过的好。非常感谢你,约翰__doe@gmail.com,约翰。。doe@xuse.de还有约翰--doe@xuse.de仍然有效,但也是一封注册无效的电子邮件。@Mann87您希望它不带,。
和-
对吗?我用另一种方式更新了我的问题,请检查一下