中文字符长度与英文字符长度的计算

  工作中遇到这样的需求:要求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="请输入字符串">
 9     <input type="text" name="length" value="" id="leng">
10     <button onclick="GetLength()">测试</button>
11     <script type="text/javascript">
12         var GetLength = function() {
13             var str = document.getElementById("str");
14             var str1 = str.value;
15             ///<summary>获得字符串实际长度,中文2,英文1</summary>
16             ///<param name="str">要获得长度的字符串</param>
17             var realLength = 0, len = str1.length, charCode = -1;
18             for (var i = 0; i < len; i++) {
19                 charCode = str1.charCodeAt(i);
20                 if (charCode >= 0 && charCode <= 128){realLength += 1;
21                 }else{
22                 realLength += 2;}
23             }
24             var objLength = document.getElementById("leng");
25              objLength.value = realLength;
26          
27         };
28          
29            // 执行代码:
30         //alert(jmz.GetLength($('#userid').val()));
31 
32 
33     </script>
34 </body>
35 </html>
原文地址:https://www.cnblogs.com/fanyuying-web/p/9234913.html