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


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

    方法一:使用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>
    

      

  • 相关阅读:
    从零到一k8s(五)网络模型讲解(cilium,calico,flannel)
    从零到一k8s(六)集群管理深入
    从零到一k8s(九)devops&&cicd
    1kvm理论
    类和方法
    方法定义和调用
    2kvm安装
    Redis6.2.6源码CLion编译调试
    ubuntu16.04 nginx创建自签名SSL证书
    MySQL性能优化之参数配置
  • 原文地址:https://www.cnblogs.com/chenyablog/p/7883166.html
Copyright © 2020-2023  润新知