![]() |
php 电子邮件账户 验证
电子邮件账户遵循特定的格式,它必须由字符、数字或破折号开始,之后可以有任意数量的上述字符及句点,接着是“@”和域名。域名包含任意数量的“单词”及分隔它们的句点,而这些“单词”是由字符、数字和破折号组成的。最后一个后缀必须是2~6个字符长。(有些程序员只允许2或3个字符,这是不对的,因为没有考虑到最新的顶级域名,如.museum。)程序清单11.7.1所用的检验方法会允许足够短但不是真正有效的顶级域名,比如.books,但与搜索冗长的有效域名列表相比,这种方法简单多了。
程序清单11.7.1 电子邮件地址检验 <?php // A function to check validity of email accounts: function validate_email($address) { // Check against a massive regex for validity ... return preg_match( '/^[a-z0-9_-][a-z0-9._-]+*([a-z0-9][a-z0-9-]*\.)+[a-z]{2,6}$/i', $address); } // Run against various email accounts $email = array('author*eliw.com', 'bob_123.3*a.b.c.r5-5.museum', 'mrmrmr*bob.lawnmower', '$bob$*gmail.com', 'bob*gmail'); // Loop over these values, determine if they are valid emails or now. foreach ($email as $e) { // Validate: $output = validate_email($e); // Prepare the display, either 'BAD' or 'GOOD' $disp = ($output == false) ? 'BAD' : 'GOOD'; echo "<p>{$e} = {$disp}</p>\n"; } ?> 当然,这段代码只是检验输入的电子邮件地址是否属于有效范围,而且只允许使用最常见的形式。现实中存在着一些其他形式,需要对代码进行少许修改才能适应。特别是主机名应该可以用包围在方括号里的IP地址表示;用户名也应该可以用双引号包围的字符串表示,其中允许包含空格。但在当今的互联网上,这种情况是很少见的。 |
| All times are GMT +8. The time now is 04:50 PM. |
Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.