tbwshc

          JS截取字符長度(按字節)

          1.  
          2. * 
          3.  處理過長的字符串,截取并添加省略號 
          4.  注:半角長度為1,全角長度為2 
          5.   
          6.  pStr:字符串 
          7.  pLen:截取長度 
          8.   
          9.  return: 截取后的字符串 
          10.  *
          11. function autoAddEllipsis(pStr, pLen)  
          12.   
          13.     var _ret cutString(pStr, pLen);  
          14.     var _cutFlag _ret.cutflag;  
          15.     var _cutStringn _ret.cutstring;  
          16.   
          17.     if ("1" == _cutFlag)  
          18.         return _cutStringn "..." 
          19.     else  
          20.         return _cutStringn;  
          21.      
          22.  
          23.   
          24. * 
          25.  取得指定長度的字符串 
          26.  注:半角長度為1,全角長度為2 
          27.   
          28.  pStr:字符串 
          29.  pLen:截取長度 
          30.   
          31.  return: 截取后的字符串 
          32.  *
          33. function cutString(pStr, pLen)  
          34.   
          35.     // 原字符串長度  
          36.     var _strLen pStr.length;  
          37.   
          38.     var _tmpCode;  
          39.   
          40.     var _cutString;  
          41.   
          42.     // 默認情況下,返回的字符串是原字符串的一部分  
          43.     var _cutFlag "1" 
          44.   
          45.     var _lenCount 0;  
          46.   
          47.     var _ret false 
          48.   
          49.     if (_strLen <= pLen/2)  
          50.         _cutString pStr;  
          51.         _ret true 
          52.      
          53.   
          54.     if (!_ret)  
          55.         for (var 0; _strLen i++  
          56.             if (isFull(pStr.charAt(i)))  
          57.                 _lenCount += 2;  
          58.             else  
          59.                 _lenCount += 1;  
          60.              
          61.   
          62.             if (_lenCount pLen)  
          63.                 _cutString pStr.substring(0, i);  
          64.                 _ret true 
          65.                 break 
          66.             else if (_lenCount == pLen)  
          67.                 _cutString pStr.substring(0, 1);  
          68.                 _ret true 
          69.                 break 
          70.              
          71.          
          72.      
          73.       
          74.     if (!_ret)  
          75.         _cutString pStr;  
          76.         _ret true 
          77.      
          78.   
          79.     if (_cutString.length == _strLen)  
          80.         _cutFlag "0" 
          81.      
          82.   
          83.     return {"cutstring":_cutString, "cutflag":_cutFlag};  
          84.  
          85.   
          86. * 
          87.  判斷是否為全角 
          88.   
          89.  pChar:長度為1的字符串 
          90.  return: tbtrue:全角 
          91.           false:半角 
          92.  * 

          93.   
          94. function isFull (pChar) 
          95.   for (var 0; < pChar.strLen i++     
          96.     if ((pChar.charCodeAt(i) 128))  
          97.         return true 
          98.     else  
          99.         return false 
          100.     
          101. }
          102. }
          103. 用例:
          104. testStr = "測試1字符串";
            autoAddEllipsis(testStr, 1); // "測..."
            autoAddEllipsis(testStr, 2); // "測..."
            autoAddEllipsis(testStr, 3); // "測..."
            autoAddEllipsis(testStr, 4); // "測試..."
            autoAddEllipsis(testStr, 5); // "測試1..."
            autoAddEllipsis(testStr, 6); // "測試1..."
            autoAddEllipsis(testStr, 7); // "測試1字..."

          posted on 2012-09-17 14:20 chen11-1 閱讀(2659) 評論(1)  編輯  收藏

          Feedback

          # 地方e: JS截取字符長度(按字節) 2014-12-26 17:37 3

          斯蒂芬  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 迭部县| 万源市| 丹寨县| 石屏县| 资阳市| 鄂托克前旗| 吉安市| 邢台县| 康保县| 临西县| 新昌县| 安仁县| 临颍县| 若尔盖县| 固原市| 寿宁县| 阳谷县| 綦江县| 宁远县| 诸城市| 克什克腾旗| 新泰市| 阳谷县| 隆尧县| 云南省| 开鲁县| 山丹县| 邓州市| 长岭县| 策勒县| 江陵县| 松桃| 湖北省| 新安县| 永仁县| 玛曲县| 黎城县| 保定市| 清水河县| 邻水| 郸城县|