JS獲取字符串實際長度(漢字算兩個字符,字母數字算一個)


方法一:使用正則表達式,代碼如下

    getByteLen(val) {
      var len = 0;
      for (var i = 0; i < val.length; i++) {
        var a = val.charAt(i);
        if (a.match(/[^\x00-\xff]/ig) != null)
        {
        len += 2;
        }
        else
        {
        len += 1;
        }
       }
      return len;
    }

方法二:使用字符unicode判斷:方法如下

var l = str.length;
var blen = 0;
for(i=0; i<l; i++) {
if ((str.charCodeAt(i) & 0xff00) != 0) {
blen ++;
}
blen ++;
}
function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
var length = val.charCodeAt(i);
if(length>=0&&length<=128)
{
len += 1;
}
else
{
len += 2;
}
}
return len;
}

方法三(更更簡潔的方法)

var jmz = {};
jmz.GetLength = function(str) {
    return str.replace(/[\u0391-\uFFE5]/g,"aa").length;   //先把中文替換成兩個字節的英文,在計算長度
};  
 
alert(jmz.GetLength('測試測試ceshiceshi'));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM