利用JS如何计算字符串所占字节数示例代码


Posted in Javascript onSeptember 13, 2017

前言

在工作中是不是经常会遇到字符串,但是要求控制字节数的需求?因为很多时候数据库中对字节数有控制,所以在前端过程中就需要判断一下,今天我们来分享一下。

本文主要给大家介绍了关于JS计算字符串所占字节数的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

示例代码

/**
 * 计算字符串所占的内存字节数,默认使用UTF-8的编码方式计算,也可制定为UTF-16
 * UTF-8 是一种可变长度的 Unicode 编码格式,使用一至四个字节为每个字符编码
 * 
 * 000000 - 00007F(128个代码)  0zzzzzzz(00-7F)        一个字节
 * 000080 - 0007FF(1920个代码)  110yyyyy(C0-DF) 10zzzzzz(80-BF)    两个字节
 * 000800 - 00D7FF 
 00E000 - 00FFFF(61440个代码) 1110xxxx(E0-EF) 10yyyyyy 10zzzzzz   三个字节
 * 010000 - 10FFFF(1048576个代码) 11110www(F0-F7) 10xxxxxx 10yyyyyy 10zzzzzz 四个字节
 * 
 * 注: Unicode在范围 D800-DFFF 中不存在任何字符
 * {@link http://zh.wikipedia.org/wiki/UTF-8}
 * 
 * UTF-16 大部分使用两个字节编码,编码超出 65535 的使用四个字节
 * 000000 - 00FFFF 两个字节
 * 010000 - 10FFFF 四个字节
 * 
 * {@link http://zh.wikipedia.org/wiki/UTF-16}
 * @param {String} str 
 * @param {String} charset utf-8, utf-16
 * @return {Number}
 */
  
 var sizeof = function(str, charset){
  var total = 0,
   charCode,
   i,
   len;
  charset = charset ? charset.toLowerCase() : '';
  if(charset === 'utf-16' || charset === 'utf16'){
   for(i = 0, len = str.length; i < len; i++){
    charCode = str.charCodeAt(i);
    if(charCode <= 0xffff){
     total += 2;
    }else{
     total += 4;
    }
   }
  }else{
   for(i = 0, len = str.length; i < len; i++){
    charCode = str.charCodeAt(i);
    if(charCode <= 0x007f) {
     total += 1;
    }else if(charCode <= 0x07ff){
     total += 2;
    }else if(charCode <= 0xffff){
     total += 3;
    }else{
     total += 4;
    }
   }
  }
  return total;
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
fix-ie5.js扩展在IE5下不能使用的几个方法
Aug 20 Javascript
JQuery将文本转化成JSON对象需要注意的问题
May 09 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
Bootstrap风格的zTree右键菜单
Feb 17 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
May 22 Javascript
vue代码分割的实现(codesplit)
Nov 13 Javascript
Jquery的autocomplete插件用法及参数讲解
Mar 12 jQuery
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
Mar 13 Javascript
JS中注入eval, Function等系统函数截获动态代码
Apr 03 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
May 14 Javascript
Vue.js计算机属性computed和methods方法详解
Oct 12 Javascript
使用JS前端技术实现静态图片局部流动效果
Aug 05 Javascript
VUE实现一个分页组件的示例
Sep 13 #Javascript
jquery 键盘事件的使用方法详解
Sep 13 #jQuery
详解angularJS+Ionic移动端图片上传的解决办法
Sep 13 #Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
Sep 13 #Javascript
Js利用Canvas实现图片压缩功能
Sep 13 #Javascript
js 倒计时(高效率服务器时间同步)
Sep 12 #Javascript
js Date()日期函数浏览器兼容问题解决方法
Sep 12 #Javascript
You might like
在IIS上安装PHP4.0正式版
2006/10/09 PHP
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
简单的php购物车代码
2020/06/05 PHP
JavaScript在浏览器标题栏上显示当前日期和时间的方法
2015/03/19 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
2020/04/10 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
2020/10/31 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
python求众数问题实例
2014/09/26 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
匡威英国官网:Converse英国
2018/12/02 全球购物
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
博士生入学考试推荐信
2013/11/17 职场文书
暑期社会实践方案
2014/02/05 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
政风行风评议心得体会
2014/10/21 职场文书
销售员态度差检讨书
2014/10/26 职场文书
初中作文评语
2014/12/25 职场文书
外贸英文求职信范文
2015/03/19 职场文书
会议室使用管理制度
2015/08/06 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
python3 hdf5文件 遍历代码
2021/05/19 Python
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python