JavaScript獲取字串的長度區分漢字

admin發表於2018-07-09

獲取字串的長度非常的簡單,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var str="螞蟻部落歡迎您,antzone?";
console.log(str.length);

上面的程式碼可以通過length屬性獲取字串的中字元的個數。

通過length屬性獲取的是字元的個數,但有時要獲取的是字串實際佔用的位元組數。

一個英文字元佔一個位元組,一個漢字佔兩個位元組。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function strLength(str){ 
  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; 
}
var str="螞蟻部落歡迎您,antzone?";
console.log(strLength(str));

以上程式碼實現了我們的要求,下面介紹一下它實現過程。

一.實現原理:

利用charCodeAt方法獲取字元的Unicode編碼,如果在0-128之間的那麼就是英文字元,只佔一個位元組,如果不在這個區間的,大致可以認為是漢字,佔用兩個位元組,那麼長度加2。

二.相關閱讀:

(1).charCodeAt方法參閱JavaScript charCodeAt()一章節。 

(2).for語句參閱JavaScript for 迴圈語句一章節。

相關文章