自动生成文章摘要的代码[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 相关文章推荐
表单(FORM)的一些实用效果代码
Mar 25 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
在JavaScript并非所有的一切都是对象
Apr 11 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
Apr 15 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
Sep 17 Javascript
js/jq仿window文件夹框选操作插件
Mar 08 Javascript
JS 实现banner图片轮播效果(鼠标事件)
Aug 04 Javascript
详解node nvm进行node多版本管理
Oct 21 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
Jul 25 jQuery
Bootstrap-table使用footerFormatter做统计列功能
Sep 07 Javascript
详解ES7 Decorator 入门解析
Feb 18 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实现的返回数据格式化类实例
2014/09/22 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
anaconda如何查看并管理python环境
2019/07/05 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
客户代表实习人员自我鉴定
2013/09/27 职场文书
工作自荐信
2013/12/11 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
材料员岗位职责
2014/03/13 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
满月酒邀请函
2015/01/30 职场文书
会计求职简历自我评价
2015/03/10 职场文书
初中重阳节活动总结
2015/05/05 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
JavaScript组合继承详解
2021/11/07 Javascript
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js