• 获取字符串实际长度(包含中英文)


    日常开发过程中,经常会遇到需要计算字符串的实际长度(包含中英文),今天整理下我平时使用的方法:

    方法一:使用charCodeAt()来判断字符编码

    charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <script>
        /**
         * 获取字符串实际长度(包含中英文)
         * @param str  要获得长度的字符串
         */
        var zfc = {};
        zfc.getStringLength = function (str) {
          var realLength = 0, len = str.length, charCode = -1;
          for (var i = 0; i < len; i++) {
            charCode = str.charCodeAt(i);
            if (charCode >= 0 && charCode <= 128)
              realLength += 1;
            else
              realLength += 2;
          }
          return realLength;
        };
        console.log(zfc.getStringLength('aaa获取字符sfdsf串实际长度(包含中英文)sdfdsf'))
      </script>
    </head>
    <body>
    
    </body>
    </html>
    

    方法二: 简化版使用charCodeAt()来判断字符编码 

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <script>
        /**
         * 获取字符串实际长度(包含中英文)
         * @param str  要获得长度的字符串
         */
        var zfc = {};
        zfc.getStringLength = function (str) {
          var len = str.length;
          var realLength = 0;
          for (var i = 0; i < len; i++) {
            if ((str.charCodeAt(i) & 0xff00) != 0) {
              realLength++;
            }
            realLength++;
          }
          return realLength;
        };
        console.log(zfc.getStringLength('aaa获取字符sfdsf串实际长度(包含中英文)sdfdsf'))
      </script>
    </head>
    <body>
    
    </body>
    </html>
    

    方法三: 先把中文替换成两个字节的英文,再计算长度推荐使用

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <script>
        /**
         * 获取字符串实际长度(包含中英文)
         * @param str  要获得长度的字符串
         */
        var zfc = {};
        zfc.getStringLength = function (str) {
          return str.replace(/[u0391-uFFE5]/g, 'aa').length;
        };
        console.log(zfc.getStringLength('aaa获取字符sfdsf串实际长度(包含中英文)sdfdsf'))
      </script>
    </head>
    <body>
    
    </body>
    </html>
    

      

  • 相关阅读:
    SOJ 1035 DNA matching
    SOJ 1027 MJ,Nowhere to Hide
    SOJ 1021 Couples
    SOJ 1020 Big Integer
    C#中正则表达式的简单使用
    根据HTTP header收集客户端相关信息 --- tornado demo
    IIS7配置Gzip压缩
    网站性能工具Yslow的使用方法
    配置ETags
    细说ETags以及如何在 IIS6和 IIS7下取消ETags
  • 原文地址:https://www.cnblogs.com/chenyablog/p/7883166.html
Copyright © 2020-2023  润新知