自动生成文章摘要的代码[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 EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
Oct 21 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
Jan 10 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
Aug 15 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
Aug 26 Javascript
jQuery 调用WebService 实例讲解
Jun 28 Javascript
基于jQuery实现表格的查看修改删除
Aug 01 Javascript
node.js学习之base64编码解码
Oct 21 Javascript
基于JS设计12306登录页面
Dec 28 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
Dec 11 Javascript
p5.js入门教程之键盘交互
Mar 19 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
Vue watch响应数据实现方法解析
Jul 10 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下实现农历日历的代码
2007/03/07 PHP
php Memcache 中实现消息队列
2009/11/24 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
php集成开发环境详解
2019/09/24 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
django如何实现视图重定向
2019/07/24 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
python中可以声明变量类型吗
2020/06/18 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
会计专业应届生自荐信
2014/02/07 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
国家助学金感谢信
2015/01/21 职场文书
谢师宴学生答谢词
2015/09/30 职场文书