JavaScript 版本自动生成文章摘要

 更新时间:2008年07月23日 09:14:00   作者:  
搜了搜这个,发现找不到答案。所以自己写了一个,很多程序绕过这个问题,往往人工来决定在何处截断 ,太麻烦了。
实现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。

php版本地址
核心部分如下:
复制代码 代码如下:

function Generate_Brief(text,length){
if(text.length < length) return text;
var Foremost = text.substr(0,length);
var re = /<(\/?)
(BODY|SCRIPT|P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|TABLE|TR|TD|TH|INPUT|SELECT|TEXTAREA|OBJECT
|A|UL|OL|LI|BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT|SPAN)[^>]*(>?)/ig;

var Singlable = /BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT/i
var Stack = new Array(), posStack = new Array();
while(true){
var newone = re.exec(Foremost);
if(newone == null) break;

if(newone[1] == ""){
var Elem = newone[2];
if(Elem.match(Singlable) && newone[3]!= ""){
continue;
}
Stack.push(newone[2].toUpperCase());
posStack.push(newone.index);

if(newone[3] == "") break;
}else{
var StackTop = Stack[Stack.length-1];
var End = newone[2].toUpperCase();
if(StackTop == End){
Stack.pop();
posStack.pop();
if(newone[3] == ""){
Foremost = Foremost+">";
}
}

};
}
var cutpos = posStack.shift();
Foremost = Foremost.substring(0,cutpos);

return Foremost;
}

相关文章

  • Bootstarp基本模版学习教程

    Bootstarp基本模版学习教程

    这篇文章主要为大家详细介绍了Bootstarp基本模版学习教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 原生JavaScript实现AJAX、JSONP

    原生JavaScript实现AJAX、JSONP

    本篇文章将会讲解原生JavaScript如何实现简单的AJAX,还有跨域请求JSONP。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-02-02
  • js实现上传图片到服务器

    js实现上传图片到服务器

    这篇文章主要为大家详细介绍了js实现上传图片到服务器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • JavaScript 图像动画的小demo

    JavaScript 图像动画的小demo

    深夜没睡着,起来翻了翻《JavaScript权威指南》这本书,看了下图形动画的demo,学习学习了
    2012-05-05
  • javascript break指定标签打破多层循环示例

    javascript break指定标签打破多层循环示例

    break的语法有两种break; 和 break label;下面为大家介绍下直接break掉整个循环嵌套示例
    2014-01-01
  • JS封装的自动创建表格的实现代码

    JS封装的自动创建表格的实现代码

    这篇文章主要介绍了JS封装的自动创建表格的实现代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • JavaScript实现带并发限制的异步调度器

    JavaScript实现带并发限制的异步调度器

    这篇文章主要为大家详细介绍了如何基于JS实现一个带并发限制的异步调度器 Scheduler,保证同时运行的任务最多有N个,感兴趣的小伙伴可以了解下
    2024-03-03
  • JS数组方法concat()用法实例分析

    JS数组方法concat()用法实例分析

    这篇文章主要介绍了JS数组方法concat()用法,结合实例形式分析了JS数组concat()方法具体功能、用法及操作注意事项,需要的朋友可以参考下
    2020-01-01
  • 基于rem的移动端响应式适配方案(详解)

    基于rem的移动端响应式适配方案(详解)

    下面小编就为大家带来一篇基于rem的移动端响应式适配方案(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 利用JS实现scroll自定义滚动效果详解

    利用JS实现scroll自定义滚动效果详解

    这篇文章主要给大家介绍了关于利用JS如何实现scroll自定义滚动效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10

最新评论