Using regex for simple email validation
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicates:
What is the best regular expression for validating email addresses?
Is there a php library for email address validation?
在我的注册表上,用户会添加他的电子邮件,然后收到一封电子邮件来验证他的帐户。不过,我希望有一个简单的电子邮件验证,我想知道以下是否合适。
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $email ="[email protected]"; if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) { echo"Valid email address."; } else { echo"Invalid email address."; } ?> |
安全: </P >
1 2 3 4 5 |
你的正则表达式unnecessarily forbids子域,如
而不是你自己的大学reinventing轮,使用
1 2 3 4 5 | if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo"Valid email address."; } else { echo"Invalid email address."; } |
除了从一个正则表达式,你可以使用
1 2 3 4 | if (filter_var('[email protected]', FILTER_VALIDATE_EMAIL)) === false) { echo"Invalid email address."; } |
电子邮件验证(一块冰,狡猾的,因为那是在RFC specifies大学的电子邮件地址的格式不受限制的冰路,我想更多的人。例如,下面是所有有效的电子邮件地址。 </P >
- "ABC""def""http://example.com
- "和平"就是"http://example.com
- "乔",把"http://example.com"
- "ABC DEF http://example.com"""
- 客户/ ="http://example.com航运部
- "http://example.com a12345美元
- !!!!!!!def!XYZ为ABC"http://example.com
- _ somename http://example.com"
正则表达式的正确的电子邮件验证表明到看什么呢,这在将不甚至尝试到变成的样子);但是,当使用PHP,你应该如何使用过滤器,_(SO)类: </P >
1 2 3 | $valid = filter_var($email, FILTER_VALIDATE_EMAIL); # $valid will be TRUE if the email address was valid, # otherwise FALSE. |
表明对包含RFC822格式规范的原始邮件,但我认为那是2822(AS联以上)的冰只是一个审计/修改的那份RFC。 </P >