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 相关文章推荐
简单JS代码压缩器
Oct 12 Javascript
JSON.stringify 语法实例讲解
Mar 14 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
Feb 26 Javascript
tangram框架响应式加载图片方法
Nov 21 Javascript
Node.js和PHP根据ip获取地理位置的方法
Mar 14 Javascript
jquery实现鼠标滑过小图时显示大图的方法
Jan 14 Javascript
AngularJS 所有版本下载地址
Sep 14 Javascript
详解Javascript数据类型的转换规则
Dec 12 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
Jan 16 Javascript
微信小程序 支付后台java实现实例
May 09 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
Sep 18 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 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
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
php实现数字补零的方法总结
2018/09/12 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
优化javascript的执行速度
2010/01/23 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
详解AngularJS 路由 resolve用法
2017/04/24 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
Python程序员开发中常犯的10个错误
2014/07/07 Python
Python实现高效求解素数代码实例
2015/06/30 Python
python opencv之SURF算法示例
2018/02/24 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
linux面试相关问题
2013/04/28 面试题
机械制造与自动化应届生求职信
2013/11/16 职场文书
毕业生找工作推荐信
2013/11/21 职场文书
求职意向书
2014/04/01 职场文书
中学生检讨书范文
2014/11/03 职场文书
订货会邀请函
2015/01/31 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python