中⽂字符长度与英⽂字符长度的计算
⼯作中遇到这样的需求:要求input输⼊的最⼤字符是8个,输⼊英⽂时可以最多输⼊8个英⽂字符,但是输⼊中⽂时,会出现在输⼊了四个汉字之后,就不能在输⼊了,原因在于⼀个汉字占了两个字节。
如何解决这个问题,即英⽂和汉字都最多输⼊8个,⽽不是按位来计算?
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title></title>
5 <meta charset="utf-8">
6 </head>
7 <body>
8 <input type="text" name="input1" id="str" value="" placeholder="请输⼊字符串">
js验证字符串长度
9 <input type="text" name="length" value="" id="leng">
10 <button onclick="GetLength()">测试</button>
11 <script type="text/javascript">
12var GetLength = function() {
13var str = ElementById("str");
14var str1 = str.value;
15///<summary>获得字符串实际长度,中⽂2,英⽂1</summary>
16///<param name="str">要获得长度的字符串</param>
17var realLength = 0, len = str1.length, charCode = -1;
18for (var i = 0; i < len; i++) {
19 charCode = str1.charCodeAt(i);
20if (charCode >= 0 && charCode <= 128){realLength += 1;
21 }else{
22 realLength += 2;}
23 }
24var objLength = ElementById("leng");
25 objLength.value = realLength;
26
27 };
28
29// 执⾏代码:
30//alert(jmz.GetLength($('#userid').val()));
31
32
33 </script>
34 </body>
35 </html>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论