我知道有很多与这个问题相关的问题,但经过几天的研究后,我找不到可以帮助这个特定情况的东西,所以这里是:
我已经在我网站的2个文件中用preg_match替换了已弃用的eregi,现在capcha代码在注册页面上出错,即使代码绝对正确
在注册页面上,我已经取代了这个
function is_valid_username($username) {
if(!eregi("^[a-z0-9]*$", trim(str_replace(" ","",$username)))) {
return 0;
}
用这个
if(!preg_match("^[a-z0-9]*$^", trim(str_replace(" ","",$username)))) {
return 0;
}
在我的第二个档案中,我已经取代了这个:
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email)) {
$result = 0;
}
用这个
if(!preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$^", $email)) {
$result = 0;
}
如何解决此问题?
答案 0 :(得分:1)
eregi
不区分大小写,因此您需要将i
修饰符添加到preg_match
表达式的末尾。
此外,^
表示输入的开头,您已将其用作delimiter。
所以这应该更像原作:
#^[a-z0-9]*$#i
和
#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$#i
顺便说一下,我不知道您的验证码需要什么,但有更简单的方法可以使用filter_var()
验证电子邮件地址。