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>  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章