您的位置:首页 > 数据库 > Oracle

[置顶] 解决EXTJS文本框长度验证在ORACLE数据库下不正确的问题

2013-08-07 18:38 323 查看
由于ORACLE数据库里面一个汉字和符号占2 个字节,数字和英文占1个字节,所以用EXTJS的文本框MaxLenght去限制输入的长度是不正确的,因为EXTJS只限制了输入的字数量,而不是字节数量。

解决办法1:

String.prototype.byteLen = function(){

var len = 0;

i = this.length;

while(i--){

len += (this.charCodeAt(i)>255?2:1);

}

return len;

}

然后在文本框控件中加入手动验证:

validator : function(value){

if(value.byteLen() > 20){

return "不能超过20个字符或10个汉字";

}

return true;

}

解决办法2,,正则匹配:

validator:function(value){

var len = value.replace(/[^/x00-/xff]/g,"xx").length;

if(len> 20){

return "不能超过20个字符或10个汉字";

}

return true;

}

用oracle数据库的朋友,一定要注意这些验证,否则保存后台会报错的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐