我知道有很多问题与这个主题有关,但经过几天的研究,我没有发现对这个特定案例有帮助的东西,所以它是:
我已经在我的网站的两个文件中用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;
}
如何解决此问题?
eregi
不区分大小写,因此需要在preg_match
表达式的末尾添加i
修饰符。
此外,^
表示输入的开始,您已将其用作分隔符。
所以这应该更像原来的:
#^[a-z0-9]*$#i
和
#^[_a-z0-9-]+('.[_a-z0-9-]+)*@[a-z0-9-]+('.[a-z0-9-]+)*('.[a-z]{2,4})$#i
顺便说一句,我不知道你的captcha代码到底需要什么,但有更简单的方法可以使用filter_var()
验证电子邮件地址。