JavaScript计算字符串实际长度方法示例

 更新时间:2023年08月24日 11:40:54   作者:点墨  
这篇文章主要为大家介绍了JavaScript计算字符串实际长度方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

计算字符串的实际长度

双字节字符(包括汉字在内)长度计2,ASCII字符计1

方法1:使用match

export function getByteLenMatch(data) {
  let result = 0;
  for (let s of data) {
    result += s.match(/[^\\x00-\\xff]/ig) == null ? 1 : 2;
  }
  return result;
}

方法2:使用replace

export function getByteLenReplace(data) {
  return data.replace(/[^\\x00-\\xff]/ig, "aa").length;
}

测试代码:

let testData = new Array(50000000).fill("哈").toString();
    for (let i = 0; i < 3; i++) {
      console.time("getByteLenMatch");
      getByteLenMatch(testData);
      console.timeEnd("getByteLenMatch");
      console.time("getByteLenReplace");
      getByteLenReplace(testData);
      console.timeEnd("getByteLenReplace");
    }

性能比较(单位ms)

字符串长度matchreplace
50,000,00080518626
50,000,00093518019
50,000,000103847512
10,000,00016311783
10,000,00016461343
10,000,00016631372
5,000,000799728
5,000,000822806
5,000,000884645
1,000,000165128
1,000,000166143
1,000,000170113
500,0008458
500,0008354
500,0008661
100,000207
100,000185
100,000205
50,00011.793.01
50,00010.392.68
50,00011.992.82
10,0004.130.60
10,0004.320.59
10,0005.480.58
5,0001.880.31
5,0001.360.33
5,0002.710.31
1,0001.670.07
1,0000.210.07
1,0001.020.06
5000.08400.0322
5000.08200.0332
5000.08400.0320
1000.02290.0100
1000.04320.0149
1000.04710.0161

在大数据量情况下,replace性能初次会劣于match,多次执行后会优于match,小数据量情况下,replace性能优于match

以上就是JavaScript计算字符串实际长度方法示例的详细内容,更多关于JavaScript计算字符串长度的资料请关注脚本之家其它相关文章!

相关文章

  • JS中的数组的sort方法使用示例

    JS中的数组的sort方法使用示例

    sort会调用每一项的toString方法进行比较,下面为大家介绍下JS中数组sort方法的具体使用
    2014-01-01
  • JS+CSS实现可以凹陷显示选中单元格的方法

    JS+CSS实现可以凹陷显示选中单元格的方法

    这篇文章主要介绍了JS+CSS实现可以凹陷显示选中单元格的方法,实例分析了javascript操作css的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Javascript promise异步编程浅析

    Javascript promise异步编程浅析

    这篇文章主要介绍了Javascript promise异步编程,Promise 是异步编程的一种解决方案,可以替代传统的解决方案–回调函数和事件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-04-04
  • Echats图表大屏自适应的实现方法

    Echats图表大屏自适应的实现方法

    很多时候我们需要用图表来制作我们统计的数据直观的分析,所以我们可以用Echarts来制作图表,这篇文章主要给大家介绍了关于Echats图表大屏自适应的实现方法,需要的朋友可以参考下
    2021-10-10
  • JS实现简单的下雪特效示例详解

    JS实现简单的下雪特效示例详解

    很多南方的小伙伴可能没怎么见过或者从来没见过下雪,这篇文章小编给大家带来一个小Demo,模拟了下雪场景。感兴趣的小伙伴快来跟随小编一起学习一下吧
    2021-12-12
  • 原生JavaScript实现五子棋游戏

    原生JavaScript实现五子棋游戏

    这篇文章主要为大家详细介绍了原生JavaScript实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • JavaScript-世界上误解最深的语言分析

    JavaScript-世界上误解最深的语言分析

    JavaScript-世界上误解最深的语言分析...
    2007-08-08
  • js LZ77算法的实现代码

    js LZ77算法的实现代码

    JS操作二进制很麻烦,而且一直没有一个好的无损压缩工具来实现纯文本的压缩。
    2010-04-04
  • uni-app微信小程序登录并使用vuex存储登录状态的思路详解

    uni-app微信小程序登录并使用vuex存储登录状态的思路详解

    这篇文章主要介绍了uni-app微信小程序登录并使用vuex存储登录态的思路,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • 详解js中的几种常用设计模式

    详解js中的几种常用设计模式

    这篇文章主要介绍了js中的几种设计模式,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07

最新评论