自动生成文章摘要的代码[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 相关文章推荐
Add a Picture to a Microsoft Word Document
Jun 15 Javascript
麦鸡的TAB切换功能结合了javascript和css
Dec 17 Javascript
js判断两个日期是否相等的方法
Sep 10 Javascript
jquery $.trim()方法使用介绍
May 21 Javascript
JS对字符串编码的几种方式使用指南
May 14 Javascript
Javascript获取随机数的实现方法
Jun 22 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
详解AngularJS跨页面传值(ui-router)
Aug 23 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
JsonServer安装及启动过程图解
Feb 28 Javascript
Openlayers实现扩散的动态点(水纹效果)
Aug 17 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
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
PHP getName()函数讲解
2019/02/03 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
javascript OFFICE控件测试代码
2009/12/08 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
JavaScript的this关键字的理解
2016/06/18 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
简单了解Python中的几种函数
2017/11/03 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
Python assert语句的简单使用示例
2019/07/28 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
司法助理专业自荐书
2014/06/13 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers