我希望有人能帮忙!!!
在对表单验证进行编码时,我收到了错误消息"Deprecated: Function ereg() is deprecated in E:\Zacel_Development\sa_model_watch.co.za\insert_newProf.php on line 184"
我做了一些研究,发现我需要改变!eregi和!ereg to preg_match ...
我确实尝试了这一点,但无济于事......任何人都可以检查我的代码,并建议我感到难过!
我的代码片段:
/* Check is numeric*/
$regex = "[0-9]{10}";
if(!ereg($regex,$field)){
$form->setError($fieldValue, "* Contact number invalid");
}
应该是:
/* Check is numeric*/
$regex = "[0-9]{10}";
if(!preg_match($regex,$field)){
$form->setError($fieldValue, "* Contact number invalid");
}
和
/* Check if valid email address */
$regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
."\.([a-z]{2,}){1}$";
if(!eregi($regex,$field)){
$form->setError($fieldValue, "* Email invalid");
}
应该是:
/* Check if valid email address */
$regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
."\.([a-z]{2,}){1}$";
if(!preg_match($regex,$field)){
$form->setError($fieldValue, "* Email invalid");
}
这仍然不起作用......我做错了什么?
答案 0 :(得分:2)
您必须使用分隔符打开和关闭正则表达式模式:
那样:
$regex = "[0-9]{10}";
变为
$regex = "/[0-9]{10}/";
如果您希望模式不区分大小写,请使用i
标志
$regex = "/somepattern/i";
答案 1 :(得分:0)
这里有一些例子:
从ereg开始,preg_match可能非常令人生畏。这里是一个迁移提示。<?php
if(ereg('[^0-9A-Za-z]',$test_string)) // will be true if characters arnt 0-9, A-Z or a-z.
if(preg_match('/[^0-9A-Za-z]/',$test_string)) // this is the preg_match version. the /'s are now required.
?>