自动生成文章摘要的代码[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 相关文章推荐
dwr spring的集成实现代码
Mar 22 Javascript
document.compatMode介绍
May 21 Javascript
基于jQuery架构javascript基础体系
Jan 01 Javascript
jquery 设置style:display的方法
Jan 29 Javascript
js实现类bootstrap模态框动画
Feb 07 Javascript
手把手教你搭建ES6的开发运行环境
Jul 11 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
安装vue-cli报错 -4058 的解决方法
Oct 19 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
fetch 如何实现请求数据
Dec 20 Javascript
javascript获取select值的方法完整实例
Jun 20 Javascript
vue form表单post请求结合Servlet实现文件上传功能
Jan 22 Vue.js
用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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
PHP中foreach循环中使用引用要注意的地方
2011/01/02 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
js实现窗口全屏示例详解
2019/09/17 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
关于Python面向对象编程的知识点总结
2017/02/14 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
python对文件的操作方法汇总
2020/02/28 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
微信端html5页面调用分享接口示例
2018/03/14 HTML / CSS
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
手术室护士自我鉴定
2013/10/14 职场文书
年检委托书
2014/08/30 职场文书
设备收款委托书范本
2014/10/02 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
2015年酒店工作总结
2015/04/28 职场文书
摩登时代观后感
2015/06/03 职场文书
python缺失值填充方法示例代码
2022/12/24 Python