解決EXTJS文本框長度驗證在ORACLE數據庫下不正確的問題

由於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數據庫的朋友,一定要注意這些驗證,否則保存後臺會報錯的。

 

發佈了32 篇原創文章 · 獲贊 6 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章