js計算字串長度程式碼例項能夠區分中英文字元

admin發表於2017-03-20

計算字串的長度是常用的操作,有些對於計算的要求比較簡單,只要計算出字串中字元的個數就可以了。

程式碼如下:

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

使用字串的length屬性可以獲取字串中字元的個數。

但是在實際應用中可能計算的不是字串中字元的個數,而是要計算字串所佔用的位元組數,因為一個漢字佔兩個位元組,一個英文字元佔用一個位元組,所以要區別對待,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var func=function(str){ 
  var cnReg=new RegExp("[\\u4e00-\\u9fa5]"); 
  var count=0; 
  for(var i=0;i<str.length;i++){ 
    if(cnReg.test(str[i])){ 
      count=count+2; 
    }
    else{ 
      count = count+1; 
    } 
  } 
  return count; 
} 
var str="螞蟻部落antzone";
console.log(func(str));

以上程式碼實現了我們的要求,可以區分中英文計算字串的長度。

原理也非常簡單,就是判斷字串中的每一個字元是否是漢字,如果是漢字,那麼長度加2,否則加1。

相關閱讀:

1.RegExp()函式可以參閱正規表示式的建立一章節。 

2.test函式可以參閱正規表示式test()函式一章節。 

3.length屬性可以參閱javascript String length一章節。

相關文章