自动生成文章摘要的代码[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 点击图片跳转上一张或下一张功能的实现代码
Mar 12 Javascript
理解Javascript_06_理解对象的创建过程
Oct 15 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
Apr 04 Javascript
javascript中onclick(this)用法介绍
Apr 19 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
纯JS代码实现一键分享功能
Apr 20 Javascript
javascript 用函数实现继承详解
May 28 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
Jun 02 Javascript
javascript实现抽奖程序的简单实例
Jun 07 Javascript
webpack+vue.js快速入门教程
Oct 12 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
Dec 25 Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 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
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
jQuery的学习步骤
2011/02/23 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
Python pymongo模块用法示例
2018/03/31 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
python处理RSTP视频流过程解析
2020/01/11 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
几个Shell Script面试题
2014/04/18 面试题
中青班党性分析材料
2014/02/16 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
员工趣味活动方案
2014/08/27 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
2015年售票员工作总结
2015/04/29 职场文书
单方投资意向书
2015/05/11 职场文书