如何将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

回到顶部