自动生成文章摘要的代码[JavaScript 版本]


Posted in Javascript onMarch 20, 2007

很多程序绕过这个问题,往往人工来决定在何处截断,太麻烦了。
实现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。
一个PHP版本的在这里!: 自动生成文章摘要[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;  
} 
Javascript 相关文章推荐
javascript prototype原型操作笔记
Dec 07 Javascript
JS预览图像将本地图片显示到浏览器上
Aug 25 Javascript
Jquery中children与find之间的区别详细解析
Nov 29 Javascript
javascript页面动态显示时间变化示例代码
Dec 18 Javascript
js触发select onchange事件的小技巧
Aug 05 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
Jun 19 Javascript
JS判断页面是否出现滚动条的方法
Jul 17 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
微信小程序中添加客服按钮contact-button功能
Apr 27 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
Sep 14 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 Javascript
用roll.js实现的图片自动滚动+鼠标触动的特效
Mar 18 #Javascript
表单提交时自动复制内容到剪贴板的js代码
Mar 16 #Javascript
用javascript自动显示最后更新时间
Mar 15 #Javascript
用js实现预览待上传的本地图片
Mar 15 #Javascript
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 #Javascript
Z-Blog中用到的js代码
Mar 15 #Javascript
htm调用JS代码
Mar 15 #Javascript
You might like
PHP4实际应用经验篇(2)
2006/10/09 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
定义select的边框颜色
2008/04/28 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
分享python数据统计的一些小技巧
2016/07/21 Python
Python3解决棋盘覆盖问题的方法示例
2017/12/07 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
python给list排序的简单方法
2020/12/10 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
客服文员岗位职责
2013/11/29 职场文书
多媒体教室标语
2014/06/26 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
Elasticsearch 数据类型及管理
2022/04/19 Python