由于ORACLE数据库里面一个汉字和符号占2 个字节,数字和英文占1个字节,所以用EXTJS的文本框MaxLenght去输入的长度是不正确的,因为EXTJS只了输入的字数量,而不是字节数量。 解决办法1: String.prototype.byteLen = function(){ var len = 0; i =
由于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数据库的朋友,一定要注意这些验证,否则保存后台会报错的。
Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务