Javascript 获取字符串字节数的多种方法

  方法有很多,举两种:

  第一种:(通过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