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截取拼接得到对应的效果。

原文地址:https://www.cnblogs.com/zhengshize/p/8297612.html

时间: 2025-01-05 04:36:57

JS文本中间显示省略号的相关文章

CSS换行文本溢出显示省略号

现代浏览器中使用css可以实现文本溢出,使用 text-overflow: ellipsis;在有些场景下没有效果,这个时候你需要检查应用的场景是是否是块元素,是否有确切的width. 如果是行内元素则需要使用display设置为inline-block; 下面是对a,span等行内元素的使用CSS换行文本溢出显示省略号的比较准确的用法: a,span { overflow: hidden; text-align: center; text-overflow: ellipsis; white-s

网页之文本溢出显示省略号

1.单行文本溢出显示省略号的css写法 1 overflow:hidden; 2 text-overflow:ellipsis; 3 white-space:nowrap;/*不换行*/ 2.多行文本显示省略号 这里根据应用场景来实现 1)Webkit浏览器或移动端页面 可以使用webkit的私有属性:-webkit-line-clamp(这个属性不属于css规范),该属性用来显示块元素显示的文本行数.要实现该效果,需要组合其他的Webkit属性. 常见结合的属性: display: -webk

CSS中超出的文本内容显示省略号

首先,分析超出内容有两种情况,单行内容超出和多行内容超出,以下逐一说明: 单行内容操作: 单行操作必须有width属性,就是元素要有宽和高的限制才可以,具备以上基本条件之后,编写以下代码 overflow:hidden; text-overflow:ellipsis; white-space:nowrap; 此时,即可看到单行文本超出显示省略号的效果. 多行内容操作: 多行文本超出省略早期是没有该写法的,本文使用的是css3对WebKit的拓展写法,需要注意,该方法只适用于WebKit浏览器和移

文本超出显示省略号/数字字母折行有关css 属性

文本超出显示省略号: 定容器宽度 overflow: hidden; text-overflow: ellipsis; 文本超出显示省略号 white-space:nowrap;  强制文本不换行 折行 word-break:break-all;  英文单词会分开折行 word-wrap:break-word; 英文单词完整处折行 令拓展: word-spacing :5px;  单词/字符之间间隔距离   white-space是字符是否换行显示的. 原文地址:https://www.cnbl

单行文本溢出显示省略号.多行文本溢出显示省略号

单行文本溢出显示省略号 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatib

截取长文本,显示省略号(多行)

其实也是前些日子做移动端的页面接到这么个需求,本来以为这没法实现,同事跟 我说-webkit-line-clamp属性可以,就去查了查,果然 Pc端基本不会有这种需求,因为这个方法兼容性太差,浏览器份额不是webkit 占大头(特别是天朝),看前缀就知道只支持webkit内核,他属于webkit内部属性, 和-webkit-text-size-adjust:none(这个Pc端已经不在支持,移动端还可以使用) 类似,但是移动端不一样,现在移动端基本是ios和Android的天下,这个属性还是 很

HTML元素文本溢出显示省略号(...)

一 单行文本 overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow 属性规定当内容溢出元素框时发生的事情. visible 默认值.内容不会被修剪,会呈现在元素框之外. hidden 内容会被修剪,并且其余内容是不可见的. scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容. auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容. inherit 规定应该从父元素继承 ove

前端面试题-文本溢出显示省略号(...)

一.文本溢出隐藏 如下图所示,我们需要对溢出文本进行"..."显示的操作,单行多行的情况都有(具体几行得看设计的心情) 二.单行文本溢出隐藏 <style type="text/css"> .text { overflow: hidden; text-overflow:ellipsis; white-space: nowrap; } </style> 1. 注意 以上设置是单行文本溢出隐藏的3个必须CSS属性,缺一不可. 2. 说明 over

单行文本溢出显示省略号

用css实现:overflow: hidden;//影藏溢出部分 text-overflow:ellipsis;//显示省略号 white-space: nowrap;//单行文本不换行 原文地址:https://www.cnblogs.com/wangjianping123/p/8900669.html