自动生成文章摘要的代码[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 29 Javascript
jquery实现的美女拼图游戏实例
May 04 Javascript
javascript中基本类型和引用类型的区别分析
May 12 Javascript
文字垂直滚动之javascript代码
Jul 29 Javascript
jQuery图片切换动画特效
Nov 02 Javascript
Bootstrap输入框组件简单实现代码
Mar 06 Javascript
Vue计算属性的学习笔记
Mar 22 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
Sep 15 Javascript
canvas绘制爱心的几种方法总结(推荐)
Oct 31 Javascript
vue router 跳转后回到顶部的实例
Aug 31 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
Apr 12 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 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
冰滴咖啡制作步骤
2021/03/03 冲泡冲煮
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
php curl 上传文件代码实例
2015/04/27 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
js编写简单的计时器功能
2017/07/15 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
中间件分为哪几类
2012/03/14 面试题
家居装修公司创业计划书范文
2014/03/20 职场文书
副总经理任命书
2014/06/05 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
教代会闭幕词
2015/01/28 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
MySQL优化及索引解析
2022/03/17 MySQL