话说博客园首页有个文章列表,大家注意到了吧?好像是废话。布局上马马虎虎过得去,不过细看,偶眼光比咱首都的车检员差得远,还是能发现有违背社会和谐之处:

很罗嗦地实现HTML5的一个小特性

  各个文章的概要长度七零八落,看上去不太齐整。前几天项目中也碰到这样问题,而且要截的内容可能包含许多RichText。现在没有一个浏览器支持哪种样式,可以将在超出范围内容自动截断并加省略号。我等追求完美之人,怎么能一个substring了之呢?不信邪,研究了大半天,还真搞出了点名堂。现在地皮好贵,文字也得蜗居,不过比较人性化一点,固定的容器显示尽可能多的内容,超过了加省略号。这篇文章就想解决这么点问题,跟不屑的朋友说声Sorry。

  对于留下来的朋友, 也不废话了,直接上代码:先实现只截取文本,不截断标签。

    String.prototype.subtext = function(len) { 
        
var sections = [];
        
var positions = [];

        
var me = this.replace(/<[^>]*>|&nbsp;/g, function(m, i) {
            sections.push(m);
            positions.push(i);
            
return "";
        }).substr(0, len);

        
for (var i = 0; i < sections.length; i++) {
            
if (positions[i] > me.length) break;
            me = me.substr(0, positions[i]) + sections[i] + me.substr(positions[i], me.length);
        }
        
while (/<\/[^>]*>/.test(sections[i])) {
            me += sections[i]; i++;
        }  
        
return me;
    }

相关文章:

  • 2021-12-05
  • 2022-01-09
  • 2021-12-05
  • 2022-12-23
  • 2022-03-11
  • 2021-12-05
  • 2021-12-05
  • 2021-08-20
猜你喜欢
  • 2022-01-22
  • 2021-08-14
  • 2021-11-21
  • 2021-12-05
  • 2022-01-03
  • 2021-11-30
相关资源
相似解决方案