自动生成文章摘要的代码[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 相关文章推荐
JS 控制非法字符的输入代码
Dec 04 Javascript
input输入框的自动匹配(原生代码)
Mar 19 Javascript
解析js如何获取当前url中的参数值并复制给input
Jun 23 Javascript
Javascript操作URL函数修改版
Nov 07 Javascript
javascript中setTimeout使用指南
Jul 26 Javascript
Underscore之Array_动力节点Java学院整理
Jul 10 Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 Javascript
three.js中文文档学习之通过模块导入
Nov 20 Javascript
基于dataset的使用和图片延时加载的实现方法
Dec 11 Javascript
如何获取vue单文件自身源码路径
May 06 Javascript
jQuery实现的记住帐号密码功能完整示例
Aug 03 jQuery
a标签调用js的方法总结
Sep 05 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
Smarty安装配置方法
2008/04/10 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python ip正则式
2009/05/07 Python
python实现的udp协议Server和Client代码实例
2014/06/04 Python
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
python中map的基本用法示例
2018/09/10 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
python递归函数用法详解
2020/10/26 Python
企业文化建设实施方案
2014/03/22 职场文书
师德师风自我评价范文
2014/09/11 职场文书
技术入股合作协议书
2014/10/07 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
写给医生的感谢信
2015/01/22 职场文书
高中社区服务活动报告
2015/02/05 职场文书
我在伊朗长大观后感
2015/06/16 职场文书
英语导游欢迎词
2015/09/30 职场文书
详解Java实践之适配器模式
2021/06/18 Java/Android
Netty客户端接入流程NioSocketChannel创建解析
2022/03/25 Java/Android
Java的Object类的九种方法
2022/04/13 Java/Android