0

哦 eh...ya ...很多评论说可以使用很多电子邮件验证,但对于这个我必须像下面提到的那样做这就是为什么....

我需要像这样验证电子邮件

字母数字字符后跟@,后跟字母数字字符,后跟. 后跟 2 – 4 个字母数字字符

这就是我所做的,但不知何故我知道这是之后的最后一部分。我搞砸了,但我找不到我搞砸的地方......

preg_match("/^([0-9]|[a-z])([0-9]|[a-z]|[_-])*@([0-9]|[a-z])*\.([0-9][a-z]){2,4}$/i","")

一开始我使用 [0-9]|[az])([0-9]|[az]|[_-] 因为我不希望人们能够使用 _- 作为开始......所以被迫仅以数字/字母开头

4

3 回答 3

2

一定有一百万不同的人为电子邮件验证编写了一个新的正则表达式。如果您对电子邮件格式感兴趣,您可以使用

$email = filter_var($email, FILTER_VALIDATE_EMAIL);

如果最终值为空,则初始值不是有效的电子邮件地址格式。

(作为额外的步骤,您可以尝试使用此函数http://php.net/manual/en/function.checkdnsrr.php来验证域)

于 2013-02-23T08:50:14.827 回答
0

电子邮件验证的原因是什么?当您尝试输入电子邮件并且由于愚蠢的验证而无法输入时,您会感到非常沮丧。我认为检查'@'和'.'的可用性是没有意义的。标志,以防用户无意中错过了这一点。

$res = preg_match("/@[^@\.]*\./", $str);
于 2013-02-23T08:58:03.777 回答
0

试试这个:

^[0-9a-z_\-]+@[0-9a-z_\-]+\.[0-9a-z]{2,4}$

但正如所说:有现成的正则表达式,比试图重新发明轮子要好得多。此外,这种当前方法并不能计算所有有效地址并验证一些非法地址。

于 2013-02-23T08:52:31.053 回答