zoukankan      html  css  js  c++  java
  • js获取字符串字节数方法小结

    这篇文章主要介绍了js获取字符串字节数方法,实例总结了javascript字符串长度计算的相关技巧,需要的朋友可以参考下

    本文实例讲述了js获取字符串字节数的方法。分享给大家供大家参考。具体如下:

    大家都知道,获取字符串的长度可用length来获取,
    那么获取这段字符串的字节数呢?

    英文字母肯定lenght和字节数都一样:都是1
    而中文lenght=1,字节数=2
    因此,需要作的就是把中文字符的字节数计算出来。

    方法一:

    alert('a'.replace(/[^u0000-u00ff]/g,"aaa").length); 
    //原理:把中文字符替换成2个英文字母,那么字节数就是2,
    //示例中改成替换成3个英文字母了。
    //因此弹出的字节数是3,如果要正确的,当然是替换成2个字母了
    //u0000这个表示的是unicode编码

    方法二:

    var str='我我我';
    var bytesCount;
    for (var i = 0; i < str.length; i++)
    {
      var c = str.charAt(i);
      if (/^[u0000-u00ff]$/.test(c)) //匹配双字节
      {
      bytesCount += 1;
      }
      else
      {
      bytesCount += 2;
      }
    }
    alert(bytesCount);
    //结果是6
    //原理也很简单,用正则判断是不是中文,如果是的话,字节数就加1。

    匹配中文字符的正则表达式: [u4e00-u9fa5]

    匹配双字节字符(包括汉字在内):[^x0000-x00ff]

    可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

    JS中的几个函数:

    charAt(num) //获取字符串的num位置的字符
    charCodeAt(num)//获取字符串的num位置的字符的unicode编码 
    fromCharCode(num)//获取unicode编码对应的字符

    希望本文所述对大家的javascript程序设计有所帮助。

  • 相关阅读:
    BLE 5协议栈-安全管理层
    BLE 5协议栈-通用属性规范层(GATT)
    BLE 5协议栈-属性协议层(ATT)
    BLE 5协议栈-逻辑链路控制与适配协议层(L2CAP)
    BLE 5协议栈-主机控制接口(HCI)
    BLE 5协议栈-直接测试模式
    BLE 5协议栈-链路层
    BLE 5协议栈-物理层
    名词缩写
    C#中数据库事务、存储过程基本用法
  • 原文地址:https://www.cnblogs.com/wdlhao/p/5104702.html
Copyright © 2011-2022 走看看