tbwshc

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

          1.  
          2. * 
          3.  處理過(guò)長(zhǎng)的字符串,截取并添加省略號(hào) 
          4.  注:半角長(zhǎng)度為1,全角長(zhǎng)度為2 
          5.   
          6.  pStr:字符串 
          7.  pLen:截取長(zhǎng)度 
          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.  取得指定長(zhǎng)度的字符串 
          26.  注:半角長(zhǎng)度為1,全角長(zhǎng)度為2 
          27.   
          28.  pStr:字符串 
          29.  pLen:截取長(zhǎng)度 
          30.   
          31.  return: 截取后的字符串 
          32.  *
          33. function cutString(pStr, pLen)  
          34.   
          35.     // 原字符串長(zhǎng)度  
          36.     var _strLen pStr.length;  
          37.   
          38.     var _tmpCode;  
          39.   
          40.     var _cutString;  
          41.   
          42.     // 默認(rèn)情況下,返回的字符串是原字符串的一部分  
          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:長(zhǎng)度為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 = "測(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 2012-09-17 14:20 chen11-1 閱讀(2659) 評(píng)論(1)  編輯  收藏

          Feedback

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

          斯蒂芬  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 辽宁省| 宝丰县| 凤凰县| 调兵山市| 华亭县| 双城市| 凌云县| 星座| 柳河县| 邵东县| 班玛县| 基隆市| 图们市| 临海市| 磴口县| 达孜县| 东源县| 潢川县| 象山县| 察哈| 临沧市| 确山县| 根河市| 剑河县| 吴江市| 甘肃省| 霍林郭勒市| 葫芦岛市| 新兴县| 台南县| 温州市| 舞阳县| 普兰县| 静乐县| 开封市| 荆门市| 石狮市| 鞍山市| 精河县| 明星| 琼结县|