最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript計算字符串實(shí)際長度方法示例

 更新時間:2023年08月24日 11:40:54   作者:點(diǎn)墨  
這篇文章主要為大家介紹了JavaScript計算字符串實(shí)際長度方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

計算字符串的實(shí)際長度

雙字節(jié)字符(包括漢字在內(nèi))長度計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

在大數(shù)據(jù)量情況下,replace性能初次會劣于match,多次執(zhí)行后會優(yōu)于match,小數(shù)據(jù)量情況下,replace性能優(yōu)于match

以上就是JavaScript計算字符串實(shí)際長度方法示例的詳細(xì)內(nèi)容,更多關(guān)于JavaScript計算字符串長度的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 動態(tài)加載、移除js/css文件的示例代碼

    動態(tài)加載、移除js/css文件的示例代碼

    本文簡單介紹動態(tài)加載、移除、替換js/css文件的示例代碼,代碼簡單易懂,非常不錯,具有參考借鑒加載,需要的朋友參考下吧
    2018-03-03
  • webpack-cli在webpack打包中的作用小結(jié)

    webpack-cli在webpack打包中的作用小結(jié)

    webpack?是打包代碼時依賴的核心內(nèi)容,而?webpack-cli?是一個用來在命令行中運(yùn)行?webpack?的工具,那么webpack-cli在webpack打包中的作用是什么,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2022-04-04
  • js類的靜態(tài)屬性和實(shí)例屬性的理解

    js類的靜態(tài)屬性和實(shí)例屬性的理解

    看到論壇的帖子,然后對靜態(tài)屬性和實(shí)例屬性有個新的認(rèn)識,做下記錄。
    2009-10-10
  • BootstrapTable加載按鈕功能實(shí)例代碼詳解

    BootstrapTable加載按鈕功能實(shí)例代碼詳解

    這篇文章主要介紹了BootstrapTable加載按鈕功能實(shí)例代碼詳解,需要的朋友可以參考下
    2017-09-09
  • Javascript變量的作用域和作用域鏈詳解

    Javascript變量的作用域和作用域鏈詳解

    這篇文章主要介紹了Javascript變量的作用域和作用域鏈詳解,本文用一個實(shí)例和運(yùn)行結(jié)果來講解這兩個知識,需要的朋友可以參考下
    2015-04-04
  • JavaScript中fromCharCode 和 fromCodePoint 的詳解與應(yīng)用小結(jié)

    JavaScript中fromCharCode 和 fromCodePoint 的詳解與應(yīng)

    本文將詳細(xì)介紹 JavaScript 中的 String.fromCharCode 和 String.fromCodePoint 方法,這兩個方法能夠幫助開發(fā)者高效地處理字符與編碼之間的轉(zhuǎn)換,理解它們的區(qū)別與應(yīng)用,將讓你的代碼更加靈活和高效,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • JavaScript函數(shù)的使用教程

    JavaScript函數(shù)的使用教程

    這篇文章主要介紹了JavaScript函數(shù)的使用教程,JavaScript函數(shù)是被設(shè)計為執(zhí)行特定任務(wù)的代碼塊。JavaScript函數(shù)會在某代碼調(diào)用它時被執(zhí)行。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • javascript每日必學(xué)之運(yùn)算符

    javascript每日必學(xué)之運(yùn)算符

    javascript每日必學(xué)之運(yùn)算符,javscript的邏輯中的正序,分支,循環(huán)以及一些簡單的運(yùn)算符,想要成為javascript大神的朋友不要錯過,閱讀一下
    2016-02-02
  • JavaScript模擬實(shí)現(xiàn)新浪下拉菜單效果

    JavaScript模擬實(shí)現(xiàn)新浪下拉菜單效果

    這篇文章主要為大家介紹了如何通過JavaScript模擬實(shí)現(xiàn)新浪的下拉菜單效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手試一試
    2022-03-03
  • 原生js+ajax分頁組件

    原生js+ajax分頁組件

    這篇文章主要為大家詳細(xì)介紹了原生js+ajax分頁組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01

最新評論

中牟县| 定州市| 秦皇岛市| 阿坝县| 深水埗区| 南陵县| 二连浩特市| 当涂县| 德惠市| 平遥县| 宝坻区| 德江县| 邓州市| 枝江市| 高青县| 汶上县| 滦平县| 玉树县| 沂水县| 赤峰市| 工布江达县| 融水| 巴楚县| 老河口市| 徐汇区| 望谟县| 辉南县| 洪江市| 满城县| 松溪县| 贵阳市| 凌海市| 祁阳县| 汉中市| 新泰市| 凯里市| 青河县| 新密市| 梅州市| 镇巴县| 稷山县|