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 更新 JavaScript 数组的 uniq 方法
Jan 23 Javascript
jquery ajax 检测用户注册时用户名是否存在
Nov 03 Javascript
jquery tablesorter.js 支持中文表格排序改进
Dec 09 Javascript
jquery 插件实现图片延迟加载效果代码
Feb 06 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
JS+CSS实现仿新浪微博搜索框的方法
Feb 24 Javascript
JavaScript实现网页对象拖放功能的方法
Apr 15 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
Mar 27 Javascript
LayUI动态设置checkbox不显示的解决方法
Sep 02 Javascript
JavaScript基础之this和箭头函数详析
Sep 05 Javascript
js实现带有动画的返回顶部
Aug 09 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 metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
如何管理Vue中的缓存页面
2021/02/06 Vue.js
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python数组条件过滤filter函数使用示例
2014/07/22 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
django页面跳转问题及注意事项
2019/07/18 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
python中的逆序遍历实例
2019/12/25 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
竟聘演讲稿范文
2013/12/31 职场文书
幼儿园美术教学反思
2014/01/31 职场文书
销售员个人求职的自我评价
2014/02/10 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
委托书怎么写
2014/07/31 职场文书
2014年党总支工作总结
2014/12/18 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
2015年中秋节主持词
2015/07/30 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript