前端开发

 首页 > 前端开发 > javascript > js获得字符串长度中文占2位英文占1位最新评论添加评论

js获得字符串长度中文占2位英文占1位最新评论添加评论

分享到:
【字体:
导读:
         [导读] js获得字符串长度中文占2位英文占1位,主要根据 String.charCodeAt api, 此 String.charCodeAt 把字符串转为 Unicode编码,英文的 Unicode编码会在128以内,所以就可以区分 中文双字节和英文单字节。...

js获得字符串长度中文占2位英文占1位,主要根据 String.charCodeAt api, 此 String.charCodeAt 把字符串转为 Unicode编码,英文的 Unicode编码会在128以内,所以就可以区分 中文双字节和英文单字节。


方法一:

代码如下:
String.prototype.gblen = function() {  
  var len = 0;  
  for (var i=0; i127 || this.charCodeAt(i)==94) {  
       len += 2;  
     } else {  
       len ++;  
     }  
   }  
  return len;  
}


方法二:


代码如下:
function strlen(str){
    var len = 0;
    for (var i=0; i= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { 
       len++; 
     } 
     else { 
      len+=2; 
     } 
    } 
    return len;
}

方法三:


代码如下:
var jmz = {};
jmz.GetLength = function(str) {
  ///获得字符串实际长度,中文2,英文1
  ///要获得长度的字符串
  var realLength = 0, len = str.length, charCode = -1;
  for (var i = 0; i < len; i++) {
    charCode = str.charCodeAt(i);
    if (charCode >= 0 && charCode <= 128) realLength += 1;
    else realLength += 2;
  }
  return realLength;
};

function getStringLength(s){
  var realLength = 0;
  var len = s.length;
  var charCode = -1;
  for(var i = 0; i < len; i++){
  charCode = s.charCodeAt(i);
  if (charCode >= 0 && charCode <= 128) {
    realLength += 1;
  }else{
    // 如果是中文则长度加2
    realLength += 2;
  }
}
  return realLength;
}


方法四:

代码如下:
var l = str.length; 
var blen = 0; 
for(i=0; i


方法五:

把双字节的替换成两个单字节的然后再获得长度 

代码如下:
getBLen = function(str) {
  if (str == null) return 0;
  if (typeof str != "string"){
    str += "";
  }
  return str.replace(/[^x00-xff]/g,"01").length;
}

以上就是js获得字符串长度中文占2位英文占1位全部内容,感谢大家支持自学php网。

分享到:
javascript中闭包详细解答javascript中闭...
javascript中闭包详细解答 一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。 词法作用...
javascript字符串和Unicode编码互相转换...
javascript字符串和Unicode编码互相转换 如: &#039;好&#039;.charCodeAt(0).toString(16) "597d" 这段代码的意思是,把字符&#039;好&#039;转化成Unicode编码,toString()就是把字符转化成16进制了 看看charCodeAt()是怎么个意思 charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……