欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript計(jì)算字符串實(shí)際長(zhǎng)度方法示例

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

計(jì)算字符串的實(shí)際長(zhǎng)度

雙字節(jié)字符(包括漢字在內(nèi))長(zhǎng)度計(jì)2,ASCII字符計(jì)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;
}

測(cè)試代碼:

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)

字符串長(zhǎng)度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性能初次會(huì)劣于match,多次執(zhí)行后會(huì)優(yōu)于match,小數(shù)據(jù)量情況下,replace性能優(yōu)于match

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

相關(guān)文章

最新評(píng)論