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字符串处理函数 - split()、join()、substring()和indexOf()
Jun 02 Javascript
选择器中含有空格在使用示例及注意事项
Jul 31 Javascript
地址栏传递中文参数乱码在js里用escape转码
Aug 28 Javascript
JS可以控制样式的名称写法一览
Jan 16 Javascript
JS实现的一个简单的Autocomplete自动完成例子
Apr 16 Javascript
jquery中的常见问题及快速解决方法小结
Jun 14 Javascript
angular.js 路由及页面传参示例
Feb 24 Javascript
koa+jwt实现token验证与刷新功能
May 30 Javascript
了解JavaScript函数中的默认参数
May 30 Javascript
layui 弹出层回调获取弹出层数据的例子
Sep 02 Javascript
js实现小球在页面规定的区域运动
Jun 16 Javascript
OpenLayers3实现地图显示功能
Sep 25 Javascript
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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
Visual Studio中js调试的方法图解
2014/06/30 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python变量赋值的秘密分享
2018/04/03 Python
一行python实现树形结构的方法
2019/08/09 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
农贸市场管理制度
2014/01/31 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
开学典礼致辞
2015/07/29 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL