javascript 判斷中文字符長度

js 代碼
 
  1. <script language=< span="">"javascript">  
  2. String.prototype.gblen = function() {  
  3.     var len = 0;  
  4.     for (var i=0; i<this.length; i++) {  
  5.         if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {  
  6.             len += 2;  
  7.         } else {  
  8.             len ++;  
  9.         }  
  10.     }  
  11.     return len;  
  12. }  
  13. String.prototype.gbtrim = function(len, s) {  
  14.     var str = '';  
  15.     var sp  = s || '';  
  16.     var len2 = 0;  
  17.     for (var i=0; i<this.length; i++) {  
  18.         if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {  
  19.             len2 += 2;  
  20.         } else {  
  21.             len2 ++;  
  22.         }  
  23.     }  
  24.     if (len2 <= len) {  
  25.         return this;  
  26.     }  
  27.     len2 = 0;  
  28.     len  = (len > sp.length) ? len-sp.length: len;  
  29.     for (var i=0; i<this.length; i++) {  
  30.         if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {  
  31.             len2 += 2;  
  32.         } else {  
  33.             len2 ++;  
  34.         }  
  35.         if (len2 > len) {  
  36.             str += sp;  
  37.             break;  
  38.         }  
  39.         str += this.charAt(i);  
  40.     }  
  41.     return str;  
  42. }  
  43. var str1 = '世上最牛的@#%&們 世上最牛的@#%&們';  
  44. document.write('str1 = '+ str1 +'
    ');  
  45. document.write('length = '+ str1.gblen() +'
    ');  
  46. document.write('gbtrim(10) = '+ str1.gbtrim(10) +'
    ');  
  47. document.write('gbtrim(10, \'…\') = '+ str1.gbtrim(10, '…') +'
    ');  
  48. document.write('gbtrim(12, \'-\' ) = '+ str1.gbtrim(12, '-') +'
    ');  
  49.   
  50. // gbtrim(len 截取長度,按英文字節長度計算, s截取後的省略字符,如"…" )  
  51. // 備註: 這裏中文字符都是當作兩個長度來計算的,所以gbtrim中的len爲10時,是顯示最多5個漢字的。  
  52. // 當漢字數大於5時,由於截取後加上“…”,所以只顯示4個漢字。  
  53. </script>  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章