zoukankan      html  css  js  c++  java
  • 中文字符长度与英文字符长度的计算

      工作中遇到这样的需求:要求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>
  • 相关阅读:
    c++ isdigit函数
    c++ swap函数
    1.2Hello, World!的大小
    1.2整型与布尔型的转换
    1.2打印ASCII码
    leetcode[170]Two Sum III
    leetcode[167]Two Sum II
    leetcode[1]Two Sum
    leetcode[2]Add Two Numbers
    leetcode[3]Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/fanyuying-web/p/9234913.html
Copyright © 2011-2022 走看看