[升级版]用JS判断输入的最大数(一个汉字为二个单位、一个英文字母为一个单位)
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://youaremyrice.blog.51cto.com/293941/58316 |
虽然HTML的文本框自代一个验证最大值的函数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; } 以下是我自己衍生出的验证输入个数的东东:
<input type="text" size="16" name="num" id="num" onChange="WidthCheck(this,5);"/> function WidthCheck(str, maxLen){ var w = 0; var tempCount = 0; for (var i=0; i<str.value.length; i++) { var c = str.value.charCodeAt(i); //单字节加1 if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { w++; }else { w+=2; } if (w > maxLen) { str.value = str.value.substr(0,i); break; } } } 啊哈哈哈,超级好用的东东
本文出自 “超级塞亚人” 博客,请务必保留此出处http://youaremyrice.blog.51cto.com/293941/58316 本文出自 51CTO.COM技术博客 |


doing1984
博客统计信息
热门文章
最新评论
友情链接