如何将PHP的eregi更改为preg_match
我需要帮助,下面是一个很小的非常基本的正则表达式,用于对电子邮件进行某种程度的验证,我的确意识到它不能发挥最大的作用,但就我的需求而言,现在可以了。
它当前使用PHP的 ,而php.net则说它现在已弃用,我应该改用 ,用
代替erei不能用,有人可以告诉我如何使它工作吗?
function validate_email($email) { if (!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $email)) {
echo 'bad email';
} else {
echo 'good email';
}
}
function validate_email($email) {
if (!preg_match("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$", $email)) {
echo 'bad email';
} else {
echo 'good email';
}
}
回答:
Perl风格的正则表达式模式始终需要定界。字符串中的第一个字符被视为定界符,因此如下所示:
function validate_email($email) { if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", $email)) {
echo 'bad email';
} else {
echo 'good email';
}
}
您最初的尝试不起作用的原因是因为它试图^
用作分隔符,但是(显然)没有找到^
与正则表达式末尾匹配的字符。
以上是 如何将PHP的eregi更改为preg_match 的全部内容, 来源链接: utcz.com/qa/413108.html