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 获取字符串字节数的多种方法
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@