当前位置:Gxlcms > mysql > 解决EXTJS文本框长度验证在ORACLE数据库下不正确的问题

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

时间:2021-07-01 10:21:17 帮助过:22人阅读

由于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数据库的朋友,一定要注意这些验证,否则保存后台会报错的。

人气教程排行