JS文本中間顯示省略號


眾所周知,文本溢出顯示省略號用CSS就可以:

單行文本:

white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display:block;

多行文本:

overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;

如果想中間顯示省略號呢??

現在需求是,一段文本很長,但最后有一個關鍵詞很重要,而且改關鍵詞有括號括起來的,需要顯示出來,所以如果文本過長,不單只做省略號處理,還要把括號里面的內容顯示出來。

// 中間顯示省略號,截取顯示括號內容
var str = $(".text").text();
var last = 0;
var all = str.length;
var fisrt = str.substring(0,6);
// 沒有中文括號(
if (str.lastIndexOf('(') == -1) {
    // 也沒有英文括號(
    if (str.lastIndexOf('(') == -1) {
        last = all - 5;
    }else{
        // 有英文括號(,就從英文括號開始截取
        last = str.lastIndexOf('(');
    }
}else{
    last = str.lastIndexOf('(');
}
// 如果長度大於13個字符才顯示省略號
if (all > 13) {
    $(".text").text(fisrt+" ... "+str.substring(last,all));
}

上面的代碼意思是:如果文本長度大於13個字符、文本內包含中文或英文括號就會截取括號到最后一個字符的內容,默認截取前6個字符跟省略號...拼接起來,得到最終的中間省略號,前面6個字,后顯示括號內容的效果。

最后:

網上看了好像css沒有顯示前面跟后面並且中間顯示省略號的屬性,所以用js截取拼接得到對應的效果。

 


免責聲明!

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



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