自动生成文章摘要的代码[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版Tab标签切换
Mar 16 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
Oct 11 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
Sep 04 Javascript
jQuery编写设置和获取颜色的插件
Jan 09 Javascript
JavaScript实现的搜索及高亮显示功能示例
Aug 14 Javascript
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
JavaScript基础心法 数据类型
Mar 05 Javascript
详解封装基础的angular4的request请求方法
Jun 05 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
Apr 14 Javascript
详解react组件通讯方式(多种)
May 06 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
php 文件上传系统手记
2009/10/26 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
修改vue+webpack run build的路径方法
2018/09/01 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
python实现马丁策略的实例详解
2021/01/15 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
连锁酒店店长职责范本
2014/02/13 职场文书
教师个人年终总结
2015/02/11 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
钱学森电影观后感
2015/06/04 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书