午后星期午

          JS截取字符長(zhǎng)度(按字節(jié))

          1.  處理過(guò)長(zhǎng)的字符串,截取并添加省略號(hào) 
          2.  注:半角長(zhǎng)度為1,全角長(zhǎng)度為2 
          3.   
          4.  pStr:字符串 
          5.  pLen:截取長(zhǎng)度 
          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.  取得指定長(zhǎng)度的字符串 
          24.  注:半角長(zhǎng)度為1,全角長(zhǎng)度為2 
          25.   
          26.  pStr:字符串 
          27.  pLen:截取長(zhǎng)度 
          28.   
          29.  return: 截取后的字符串 
          30.  *
          31. function cutString(pStr, pLen)  
          32.   
          33.     // 原字符串長(zhǎng)度  
          34.     var _strLen pStr.length;  
          35.   
          36.     var _tmpCode;  
          37.   
          38.     var _cutString;  
          39.   
          40.     // 默認(rèn)情況下,返回的字符串是原字符串的一部分  
          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:長(zhǎng)度為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 = "測(cè)試1字符串";
            autoAddEllipsis(testStr, 1); // "測(cè)..."
            autoAddEllipsis(testStr, 2); // "測(cè)..."
            autoAddEllipsis(testStr, 3); // "測(cè)..."
            autoAddEllipsis(testStr, 4); // "測(cè)試..."
            autoAddEllipsis(testStr, 5); // "測(cè)試1..."
            autoAddEllipsis(testStr, 6); // "測(cè)試1..."
            autoAddEllipsis(testStr, 7); // "測(cè)試1字..."

          posted on 2013-12-31 14:04 午后星期午 閱讀(119) 評(píng)論(0)  編輯  收藏 所屬分類: Js

          主站蜘蛛池模板: 陆良县| 商河县| 包头市| 莱州市| 西昌市| 松江区| 修武县| 石河子市| 洪洞县| 平湖市| 子长县| 青海省| 久治县| 青铜峡市| 崇信县| 巴青县| 宣汉县| 贡觉县| 黎川县| 涞水县| 广南县| 宜昌市| 扎兰屯市| 和静县| 汝州市| 临漳县| 临武县| 泊头市| 江源县| 丹江口市| 丹凤县| 家居| 永嘉县| 资阳市| 横山县| 漾濞| 沧源| 司法| 体育| 布拖县| 通江县|