中文字符长度的验证规则
在我们验证一个输入框值时,不希望其中中文字符长度超过一定数额。设置验证规则为:$rules[ 'name' ] = "trim|required|max_length";
这时候有一个问题,就是这个长度是按照字节长度来验证的。我们的程序里面用的是中文utf-8的编码方式。所以我们一个中文字符是3个相应的英文字符。当字符超过规定时,报错信息将会报出我们在验证规则中写入的数字,就是15。但是实际上,由于一个中文字符是3个英文字符。所以我们需要的显示的为5个字符。。不知道大家有没有遇到过这种问题。。
谢谢。。 看了一下 Validation 库 貌似直接用的是 strlen
偶没使过CI
楼主可以试着修改 max_length / min_length 函数
长度比较利用 mb_internal_encoding() 和 mb_strlen() 函数 //return (mb_strlen($str) > $val) ? FALSE : TRUE;
return ((strlen($str) + mb_strlen($str,'UTF8'))/2 > $val) ? FALSE : TRUE; 使用回调函数比较好,想怎么处理都行
页:
[1]