【发布时间】:2018-08-27 00:07:22
【问题描述】:
发现了这种技术来验证电子邮件地址的格式是否正确。
function check_email($email) {
if( (preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) ||
(preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/',$email)) ) {
return true;
} else {
return false;
}
}
我是 php 的新手。这个大的正则表达式命令是什么意思?
【问题讨论】:
-
我建议看一下网上的正则表达式工具,你可以将正则表达式粘贴进去,它会解释每个步骤,例如regexr.com
-
我在 regex101 上做了匹配。但我对“([?)”感到困惑是检查@之后是否有任何[或什么? php 分隔符之前的 ^ 和末尾的 $ 代表什么?
-
这些模式一团糟。我建议你停止查看这个 sn-p,并开始搜索一些好的电子邮件验证正则表达式......或者更好地验证没有正则表达式的电子邮件地址 - 寻找:
filter_var($email, FILTER_VALIDATE_EMAIL)。
标签: php regex preg-match email-validation