JavaScript 版本自动生成文章摘要


Posted in Javascript onJuly 23, 2008

实现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。

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插件模板
Jan 09 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
详解js界面跳转与值传递
Nov 22 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
Mar 06 Javascript
老生常谈angularjs中的$state.go
Apr 24 Javascript
详解VueJS 数据驱动和依赖追踪分析
Jul 26 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
Vue2.0用户权限控制解决方案的示例
Feb 10 Javascript
使用vue中的v-for遍历二维数组的方法
Mar 07 Javascript
小程序实现列表删除功能
Oct 30 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 Javascript
JavaScript 声明私有变量的两种方式
Feb 05 Javascript
javascript 支持ie和firefox杰奇翻页函数
Jul 22 #Javascript
IE8 引入跨站数据获取功能说明
Jul 22 #Javascript
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 #Javascript
js停止输出代码
Jul 20 #Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 #Javascript
javascript 获取网页参数系统
Jul 19 #Javascript
javascript import css实例代码
Jul 18 #Javascript
You might like
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
Yii清理缓存的方法
2016/01/06 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
jquery 选项卡效果 新手代码
2011/07/08 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
python绘图方法实例入门
2015/05/19 Python
python中的字典使用分享
2016/07/31 Python
python 2.7.14安装图文教程
2018/04/08 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
python取余运算符知识点详解
2019/06/27 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
《曹刿论战》教学反思
2014/03/02 职场文书
售后求职信范文
2014/03/15 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
工会换届选举方案
2014/05/21 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
Android存储中最基本的文件存储方式
2022/04/30 Java/Android
SQL Server 中的事务介绍
2022/05/20 SQL Server