自动生成文章摘要的代码[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 相关文章推荐
jQuery 源码分析笔记(2) 变量列表
May 28 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
Jun 10 Javascript
javascript解决IE6下hover问题的方法
Jul 28 Javascript
实例详解AngularJS实现无限级联动菜单
Jan 15 Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 Javascript
JS实现购物车特效
Feb 02 Javascript
Vue2.x中的父组件传递数据至子组件的方法
May 01 Javascript
原生JS发送异步数据请求
Jun 08 Javascript
微信小程序实现上传图片功能
May 28 Javascript
微信小程序实现星星评价效果
Nov 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
redis 队列操作的例子(php)
2012/04/12 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
jquery禁用右键单击功能屏蔽F5刷新
2014/03/17 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
js实现微博发布小功能
2017/01/12 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
vue2.0实现分页组件的实例代码
2017/06/22 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
django之session与分页(实例讲解)
2017/11/13 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python3 用什么IDE开发工具比较好
2020/11/28 Python
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
实习护理工作自我评价
2013/09/25 职场文书
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
团队激励口号
2014/06/06 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
遗嘱范文
2015/08/07 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS