午后星期午

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

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

          91.   
          92. function isFull (pChar) 
          93.   for (var 0; < pChar.strLen i++     
          94.     if ((pChar.charCodeAt(i) 128))  
          95.         return true 
          96.     else  
          97.         return false 
          98.     
          99. }
          100. }
          101. 用例:
          102. 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 2013-12-31 14:04 午后星期午 閱讀(119) 評論(0)  編輯  收藏 所屬分類: Js

          主站蜘蛛池模板: 布拖县| 株洲县| 平乐县| 北辰区| 育儿| 汝阳县| 鹤庆县| 教育| 长汀县| 南岸区| 大厂| 迭部县| 庆阳市| 阳高县| 洮南市| 滨州市| 东源县| 昌乐县| 屯留县| 绥阳县| 连江县| 海兴县| 施秉县| 抚顺市| 杭州市| 陇南市| 灵丘县| 通城县| 车险| 阳谷县| 贞丰县| 屯留县| 枞阳县| 永州市| 黔西| 博野县| 新昌县| 宾阳县| 德安县| 萍乡市| 黄浦区|