自动生成文章摘要的代码[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的固定表头和列头的代码
May 03 Javascript
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
Javascript中判断变量是数组还是对象(array还是object)
Aug 14 Javascript
jquery队列queue与原生模仿其实现方法分享
Mar 25 Javascript
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
node.js中实现同步操作的3种实现方法
Dec 05 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
May 25 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
vue和webpack项目构建过程常用的npm命令详解
Jun 15 Javascript
解决vue组件props传值对象获取不到的问题
Jun 06 Javascript
小程序api实现promise封装过程解析
Nov 21 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 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一些服务器端特性的配置加强php的安全
2006/10/09 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
详解Python发送邮件实例
2016/01/10 Python
Mac 上切换Python多版本
2017/06/17 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
详解python tkinter模块安装过程
2020/01/06 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
Ref与out有什么不同
2012/11/24 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
数控专业大学生的自我鉴定
2013/11/13 职场文书
营销总经理的岗位职责
2013/12/15 职场文书
行政部总经理岗位职责
2014/01/04 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
质量主管工作职责
2014/09/26 职场文书
2015年计划生育责任书
2015/05/08 职场文书