由于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数据库的朋友,一定要注意这些验证,否则保存后台会报错的。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号