我有一个功能(有效)并检查电子邮件地址是否有效。我理解大部分工作是如何工作的,除了实际测试的部分有一个体面的电子邮件。
这是如何运作的:
if ( preg_match("/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i", $email) ) {
$valid_address = true;
} else {
$valid_address = false;
}
}
我真的不了解preg_match,所以这看起来几乎是随机字符。
答案 0 :(得分:4)
请勿使用preg_match
来验证电子邮件。 PHP有一个内置函数。
filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)
那就是说,preg_match
的运营商是well documented。
答案 1 :(得分:1)
首先,preg_match有文档: http://php.net/manual/en/function.preg-match.php
但是你真正想知道的是正则表达式(那一串疯狂的字符): Learning Regular Expressions
第二个答案有一个不错的概述。