设为首页
收藏本站
Archiver
用户
登录
入住
用户名
Email
自动登录
找回密码
密码
登录
入住 CI 中国社区
首页
返回 CodeIgniter 中国首页
论坛
BBS
导读
Guide
个人主页
Space
中文手册
搜索
CodeIgniter 搜索引擎
视频教程
案例
任务
搜索
搜索
本版
帖子
用户
设为首页
收藏本站
Archiver
开启辅助访问
切换到宽版
日志
相册
分享
记录
CodeIgniter4
CodeIgniter3
CodeIgniter2
帖子
好友
道具
勋章
收藏
任务
记录
留言板
设置
我的收藏
退出
腾讯QQ
微信登录
CodeIgniter 中国开发者社区
»
论坛
›
CodeIgniter 开发
›
CodeIgniter 问答求助
›
中文字符长度的验证规则
返回列表
查看:
3454
|
回复:
3
[已解决]
中文字符长度的验证规则
[复制链接]
martingking
martingking
当前离线
积分
10
IP卡
狗仔卡
发表于 2008-6-4 11:19:09
|
显示全部楼层
|
阅读模式
在我们验证一个输入框值时,不希望其中中文字符长度超过一定数额。设置验证规则为:
$rules[ 'name' ] = "trim|required|max_length[15]";
这时候有一个问题,就是这个长度是按照字节长度来验证的。我们的程序里面用的是中文utf-8的编码方式。所以我们一个中文字符是3个相应的英文字符。当字符超过规定时,报错信息将会报出我们在验证规则中写入的数字,就是15。但是实际上,由于一个中文字符是3个英文字符。所以我们需要的显示的为5个字符。。不知道大家有没有遇到过这种问题。。
谢谢。。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
airwin
airwin
当前离线
积分
11
IP卡
狗仔卡
发表于 2008-6-4 13:58:18
|
显示全部楼层
看了一下 Validation 库 貌似直接用的是 strlen
偶没使过CI
楼主可以试着修改 max_length / min_length 函数
长度比较利用 mb_internal_encoding() 和 mb_strlen() 函数
回复
支持
反对
使用道具
举报
显身卡
redlink
redlink
当前离线
积分
121
IP卡
狗仔卡
发表于 2010-8-3 15:51:39
|
显示全部楼层
//return (mb_strlen($str) > $val) ? FALSE : TRUE;
return ((strlen($str) + mb_strlen($str,'UTF8'))/2 > $val) ? FALSE : TRUE;
回复
支持
反对
使用道具
举报
显身卡
haohailuo
haohailuo
当前离线
积分
1091
IP卡
狗仔卡
发表于 2010-8-4 17:57:16
|
显示全部楼层
使用回调函数比较好,想怎么处理都行
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
入住 CI 中国社区
本版积分规则
发表回复
回帖后跳转到最后一页