Javascript 获取字符串字节数的多种方法


Posted in Javascript onJune 02, 2009

方法有很多,举两种:
第一种:(通过String对象的charCodeAt方法)

String.prototype.getBytesLength = function() { 
var length = 0; 
for(i = 0;i < this.length; i++) { 
iCode = this.charCodeAt(i); 
if((iCode >= 0 && iCode <= 255) || (iCode >= 0xff61 && iCode <= 0xff9f)) { 
length += 1; 
} else { 
length += 2; 
} 
} 
return length; 
}

第二种:(通过escape()方法转编码后判断)
String.prototype.getBytesLength = function() { 
var str = escape(this); 
for(var i = 0, length = 0;i < str.length; i++, length++) { 
if(str.charAt(i) == "%") { 
if(str.charAt(++i) == "u") { 
i += 3; 
length++; 
} 
i++; 
} 
} 
return length; 
}

第三种写法:彻底无语了!
String.prototype.getBytesLength = function() { 
return this.replace(/[^\x00-\xff]/gi, "--").length; 
}

我喜欢第三种,以上代码均测试通过
代码简单,不给出测试结果
px
Javascript 相关文章推荐
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
Jun 02 Javascript
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
JS面向对象编程浅析
Aug 28 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
javascript异步编程的4种方法
Feb 19 Javascript
jQuery实现按键盘方向键翻页特效
Mar 18 Javascript
javascript基础知识分享之类与函数化
Feb 13 Javascript
Angular 中 select指令用法详解
Sep 29 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
AngularJs分页插件使用详解
Jun 30 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 #Javascript
Javascript String对象扩展HTML编码和解码的方法
Jun 02 #Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
Jun 02 #Javascript
慎用 somefunction.prototype 分析
Jun 02 #Javascript
网页和浏览器兼容性问题汇总(draft1)
Jun 01 #Javascript
javascript 图片上传预览-兼容标准
Jun 01 #Javascript
javascript 关闭IE6、IE7
Jun 01 #Javascript
You might like
jscript之List Excel Color Values
2007/06/13 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
JS数组属性去重并校验重复数据
2020/01/10 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
vue 使用原生组件上传图片的实例
2020/09/08 Javascript
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
对Python _取log的几种方式小结
2019/07/25 Python
Python使用type动态创建类操作示例
2020/02/29 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
一套中级Java程序员笔试题
2015/01/14 面试题
优秀少先队工作者事迹材料
2014/05/13 职场文书
优秀员工自荐书
2015/03/06 职场文书
会议主持词开场白
2015/05/28 职场文书
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL