Webform里面Textbox的字符长度问题。
我设置textbox的MaxLength为5,竟然可以输入5个汉字或者5个英文字母,真奇怪。汉字不是占两个字符吗? 该如何解决呢?
大家来探讨一下吧。
[解决办法]
汉字占 2个字节。
英文字母占 1个字节。
你可以反编译一下。看看MaxLength 这个属性。微软是怎么处理的。
[解决办法]
字符串的长度和字节是两个不同的概念.MaxLength或者可以理解为字符的长度
[解决办法]
脚本控制
///////////////////////////////////////////////////////////////////// // 判断长度是否合格 // // 引数 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; }