栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript中的字符串长度(以字节为单位)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript中的字符串长度(以字节为单位)

如果您知道字符编码,则可以自己计算。

enpreURIComponent
假定UTF-8为字符编码,因此,如果需要该编码,可以这样做,

function lengthInUtf8Bytes(str) {  // Matches only the 10.. bytes that are non-initial characters in a multi-byte sequence.  var m = enpreURIComponent(str).match(/%[89ABab]/g);  return str.length + (m ? m.length : 0);}

由于UTF-8编码多字节序列的方式,因此应该可以使用。对于单个字节序列,第一个编码字节始终以零的高位开头,或者第一个十六进制数字为C,D,E或F的字节开始。第二个和后续字节是前两个位为10的字节这些是要在UTF-8中计数的额外字节。

维基百科中的表格更加清晰

Bits        Last pre point Byte 1          Byte 2          Byte 3  7         U+007F          0xxxxxxx 11         U+07FF          110xxxxx        10xxxxxx 16         U+FFFF          1110xxxx        10xxxxxx        10xxxxxx...

相反,如果您需要了解页面编码,则可以使用以下技巧:

function lengthInPageEncoding(s) {  var a = document.createElement('A');  a.href = '#' + s;  var sEnpred = a.href;  sEnpred = sEnpred.substring(sEnpred.indexOf('#') + 1);  var m = sEnpred.match(/%[0-9a-f]{2}/g);  return sEnpred.length - (m ? m.length * 2 : 0);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596806.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号