日期:2014-05-17  浏览次数:20901 次

Webform里面Textbox的字符长度问题。
我设置textbox的MaxLength为5,竟然可以输入5个汉字或者5个英文字母,真奇怪。汉字不是占两个字符吗? 该如何解决呢?
大家来探讨一下吧。

------解决方案--------------------
汉字占 2个字节。

英文字母占 1个字节。

你可以反编译一下。看看MaxLength 这个属性。微软是怎么处理的。
------解决方案--------------------
字符串的长度和字节是两个不同的概念.MaxLength或者可以理解为字符的长度
------解决方案--------------------
脚本控制
JScript code
///////////////////////////////////////////////////////////////////// 
//   判断长度是否合格 
// 
// 引数 s   传入的字符串 
//           n   限制的长度n以下 
// 
// 返回值 false   NG 
//           true    OK 
///////////////////////////////////////////////////////////////////// 

function WidthCheck(s, n){   
var w = 0;   
for (var i=0; i<s.length; i++) {   
   var c = s.charCodeAt(i);   
   //单字节加1    
   if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {   
    w++;   
   }   
   else {   
    w+=2;   
   }   
}   
if (w > n) {   
   return false;   
}   
return true;   
}