js判断字符的宽度

2020-06-08  本文已影响0人  刚刚8888

需求背景:根据文字的内容设置元素的宽度,但是中文和英文的宽度不一样,所以遍历字符串,如果是中文,长度加2,

如果是英文,长度加1。因此,做此笔记。

方式一:

function strLen(str) {  
  var len = 0;  
  for (var i=0; i<str.length; i++) {  
    if (str.charCodeAt(i)>127 || str.charCodeAt(i)==94) {  
       len += 2;  
     } else {  
       len ++;  
     }  
   }  
  return len;  
}
方式二:

function strlen(str){
    var len = 0;
    for (var i=0; i<str.length; i++) { 
        var c = str.charCodeAt(i); 
        if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { 
           len++; 
        } else { 
           len+=2; 
        } 
    } 
    return len;
}
方式三:

function strLen(str){
    var l = str.length; 
    var blen = 0; 
    for(i=0; i<l; i++) { 
        if ((str.charCodeAt(i) & 0xff00) != 0) { 
            blen ++; 
        } 
        blen ++; 
    }
}
方式四:

function strLen(str) {
  if (str == null) return 0;
  if (typeof str != "string"){
    str += "";
  }
  return str.replace(/[^\x00-\xff]/g,"01").length;
}

上一篇下一篇

猜你喜欢

热点阅读