电子邮件验证php

时间:2016-11-05 12:35:44

标签: php validation email

基本上我需要验证包含确切字母的电子邮件。让我们说我的学院有一个id为x12627353@student.ncirl.ie的学生,我希望验证强制学生在电子邮件开头输入x,然后输入8个随机数的学生卡,最后进行验证要求@ student.ncirl.ie。其他明智的做法是不允许学生注册并登录网站。

我的代码是:

 if ( !filter_var($email,FILTER_VALIDATE_EMAIL) ) {
        $error = true;
        $emailError = "Please enter valid email address.";
    } else {
        // check email exist or not
        $query = "SELECT userEmail FROM users WHERE userEmail='$email'";
        $result = mysql_query($query);
        $count = mysql_num_rows($result);
        if($count!=0){
            $error = true;
            $emailError = "Provided Email is already in use.";
        }
    }

我想这样做:\b[x0-9._%+-]+@student.ncirl.ie\b但我只是php中的初学者,我无法实现它。如果有人能够,你可以通过创建示例代码来帮助我吗?或简要说明。谢谢。

1 个答案:

答案 0 :(得分:5)

你必须深入研究preg_match()功能。

  

搜索主题与模式中给出的正则表达式匹配。

例如:

$email = "x12627353@student.ncirl.ie";
$result = preg_match('/^x[\d]{8}@student\.ncirl\.ie$/', $email);

if ($result) {
    ...
    do some stuff
    ...
}

regex101上正则表达式的测试。

解释:

  

^ 在字符串

的开头断言位置      

x 匹配字符x字面(区分大小写)

     

匹配下面列表中的单个字符:

     

<强> [\ d] {8}

     

{8} 量词 - 准确匹配8次

     

\ d 匹配一个数字(等于[0-9])

     

@student 字面匹配字符@student(区分大小写)

     

匹配该字符。从字面上看(区分大小写)

     

ncirl 字面匹配字符ncirl(区分大小写)

     

匹配该字符。从字面上看(区分大小写)

     

匹配字符即字面意思(区分大小写)

     

$ 断言字符串末尾或行前的位置   字符串末尾的终结符(如果有的话)

希望它有所帮助。