在CI框架中如何添加新的表单规则呢?
比如,我想在进行表单验证的时候,添加一个电话号码的验证规则,或是一个手机号码的验证规则。
我在框架中做了如下偿试,但没有成功:
首先,我找到了/system/libraries/目录下的Form_validation.php和Validation.php,并在两个文件的最后面添加了以下方法:
1.) function phone($str)
{
return ( ! preg_match("/^0\\d{2}[-]?\\d{8}$|^0\\d{3}[-]?\\d{7}$/", $str)) ? FALSE : TRUE;
}
2.) function cellphone($str)
{
return ( ! preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/", $str)) ? FALSE : TRUE;
}
1.)方法用于对电话号码的验证;2.)方法用于对手机号码的验证。其验证方法采用正则表达式的方法进行字符匹配;
第二步:在/system/language/english目录下找到form_validation_lang.php和validation_lang.php两个文件,依然是在这两个文件的最后添加了以下代码:
$lang['is_natural'] = "The %s field must contain a number.";
$lang['is_natural_no_zero'] = "The %s field must contain a number greater than zero.";
$lang['phone'] = "%S格式不正确";
$lang['cellphone'] = "%S格式不正确";
第三步:对我所写的表单进行验证:
我所写的表单代码如下:
<form action="" method="post">
电话:<input type="text" name="phone" value="" maxlength="20">
手机:<input type="text" name="cellphone" value="" maxlength="20">
<input type="submit" value="提交">
</form>
对表单进行验证的代码:
$this->load->library('form_validation');
$this->form_validation->set_rules('phone','电话','phone');
$this->form_validation->set_rules('cellphone','电话','cellphone');
if($this->form_validation->run()==false)
{
//出现错误时显示提示信息
$item['Error_message']=1;
}
else
{
//进行操作代码
}
以上几步操作进行之后,验证没有成功。
本人也是刚刚接触CI,所以就试着改写一下源代码,以便日后使用。但是这种操作方式不一定能行的通,所以在此请高人指点。
如果这个方法行不通,希望能给一个其他的方式。我在教程中有看到说使用用户自定义的表单验证规则,但是我没有看明白。如果有可能,希望能给一个用户自定义的表单验证规则的教程,尽可能的详细点吧。毕竟是新手嘛!呵呵。在此谢过了!