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 相关文章推荐
高性能web开发 如何加载JS,JS应该放在什么位置?
May 14 Javascript
学习javascript,实现插入排序实现代码
Jul 31 Javascript
jQuery的.live()和.die() 使用介绍
Sep 10 Javascript
jQuery模拟超链接点击效果代码
Apr 21 Javascript
浅析JSONP技术原理及实现
Jun 08 Javascript
javascript简易画板开发
Apr 12 Javascript
浅谈jquery中next与siblings的区别
Oct 27 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
Nov 21 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
基于better-scroll 实现歌词联动功能的代码
May 07 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 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
解析php中反射的应用
2013/06/18 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
Prototype框架详解
2015/11/25 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
parser.add_argument中的action使用
2020/04/20 Python
Python无损压缩图片的示例代码
2020/08/06 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
2014年大学生自我评价
2014/01/19 职场文书
初中化学教学反思
2014/01/23 职场文书
采购求职信
2014/03/17 职场文书
团日活动总结模板
2014/06/25 职场文书
文案策划专业自荐信
2014/07/07 职场文书
文明社区申报材料
2014/08/21 职场文书
个人授权委托书模板
2014/09/14 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技