Regex PHP - 验证电子邮件地址

时间:2015-03-12 15:22:16

标签: php regex validation

function validateemail($email) {
$v = "/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/";

return (bool)preg_match($v, $email);
}
// check e-mail address, to see if it's a valid phone number
if ($validateemail($email)) {
$error = true;
echo 'Invalid phone number!';
}

我试图通过validateemail功能检查电子邮件地址是否有效,如果电话号码无效,则会显示一条消息并设置$error为真。但是我似乎无法使用此代码,据我所知,没有语法错误。任何建议将不胜感激。

BTW - 我知道还有其他方法来验证电子邮件地址,这是针对大学项目的,为此我们必须使用正则表达式。

提前致谢!

3 个答案:

答案 0 :(得分:0)

-未位于第一个[a-zA-Z0-9_-.+]组内的最终位置。

尝试

[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z]+

看看这个example

答案 1 :(得分:0)

你需要逃脱破折号,因为它也可以用来表示一个角色范围。

function validateemail($email) {
  $v = "/[a-zA-Z0-9_\-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/";
  return (bool)preg_match($v, $email);
}

答案 2 :(得分:0)

如果您只是想检查它是否是valide电子邮件,我建议使用filter_var($ email,FILTER_VALIDATE_EMAIL,例如:

<?php
$email = "john.doe@example.com";

if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?> 

资料来源:www.w3schools.com/php/filter_validate_email.asp