解決頁面換行因標點符號不能出現在每一行的開頭,導致提前換行,中間出現空隙的問題


只能處理比較短的文字。可以先把字符串按每一行的長度截取下來,再到行首加一個空白字符,這樣就不會因為標點符號在前面而強制換行了,因為行首都有一個空白字符,而空白字符是可以當行首的。

下面貼一下我用的截取字符串的方法

function cutStr(str,L){
     var result = '',
         strlen = str.length, // 字符串長度
         chrlen = str.replace(/[^\x00-\xff]/g,'**').length; // 字節長度

     if(chrlen<=L){return str;}

     for(var i=0,j=0;i<strlen;i++){
         var chr = str.charAt(i);
         if(/[\x00-\xff]/.test(chr)){
             j++; // ascii碼為0-255,一個字符就是一個字節的長度
         }else{
             j+=2; // ascii碼為0-255以外,一個字符就是兩個字節的長度
         }
         if(j<=L){ // 當加上當前字符以后,如果總字節長度小於等於L,則將當前字符真實的+在result后
             result += chr;
         }else{ // 反之則說明result已經是不拆分字符的情況下最接近L的值了,直接返回
             return result;
         }
     }
 }

 也就不依賴自動換行了,而是直接向測出一行要多長,直接自己先截取字符串,后面在每個直接截取字符串的前面加一個空格,空格是可以用於開頭的,這樣就不會因為標點不好不能出現在開頭而提前換行了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM