自动生成文章摘要的代码[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 模式设计之工厂模式详细说明
May 10 Javascript
jQuery Ajax使用实例
Apr 16 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
Dec 02 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
JS字典Dictionary类定义与用法示例
Feb 01 Javascript
微信小程序仿今日头条导航栏滚动解析
Aug 20 Javascript
layer 刷新某个页面的实现方法
Sep 05 Javascript
VScode格式化ESlint方法(最全最好用方法)
Sep 10 Javascript
在vue和element-ui的table中实现分页复选功能
Dec 04 Javascript
angular共享依赖的解决方案分享
Oct 15 Javascript
vue3中provide && inject的使用
Jul 01 Vue.js
用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伪造referer实例代码
2008/09/20 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php实现简单文件下载的方法
2015/01/30 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
javascript 写类方式之六
2009/07/05 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
easyui关于validatebox实现多重规则验证的方法(必看)
2017/04/12 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
python连接MySQL数据库实例分析
2015/05/12 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
Python图像处理模块ndimage用法实例分析
2019/09/05 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
python实现人机五子棋
2020/03/25 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
彪马西班牙官网:PUMA西班牙
2019/06/18 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
美发活动策划书
2014/01/14 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL