Daw*_*ski 0 php email validation
基本上我需要验证包含确切字母的电子邮件.让我们说我的学院有一个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.";
}
}
Run Code Online (Sandbox Code Playgroud)
我想这样做:\b[x0-9._%+-]+@student.ncirl.ie\b但我只是php的初学者,我无法实现它.如果有人能够,你可以通过创建示例代码来帮助我吗?或简要说明.谢谢.
你必须深入了解preg_match()函数.
搜索主题匹配模式中给出的正则表达式.
例如 :
$email = "x12627353@student.ncirl.ie";
$result = preg_match('/^x[\d]{8}@student\.ncirl\.ie$/', $email);
if ($result) {
...
do some stuff
...
}
Run Code Online (Sandbox Code Playgroud)
regex101上正则表达式的测试.
解释:
^断言字符串开头的位置
x与字符x字面匹配(区分大小写)
匹配下面列表中的单个字符:
[\ d] {8}
{8}量词 - 准确匹配8次
\ d匹配一个数字(等于[0-9])
@student字面匹配字符@student(区分大小写)
.匹配角色.字面意思(区分大小写)
ncirl字面匹配字符ncirl(区分大小写)
.匹配角色.字面意思(区分大小写)
即匹配字符即字面意思(区分大小写)
$断言字符串末尾的位置,或者在字符串末尾的行终止符之前(如果有的话)
希望能帮助到你.