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 24 Javascript
javascript学习笔记(九) js对象 设计模式
Jun 19 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
Sep 14 Javascript
JS两种定义方式的区别、内部原理
Nov 21 Javascript
node.js中的buffer.fill方法使用说明
Dec 14 Javascript
Bootstrap模仿起筷首页效果
May 09 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
Sep 01 Javascript
Angular Module声明和获取重载实例代码
Sep 14 Javascript
JavaScript字符集编码与解码详谈
Feb 02 Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
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 preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
PHP的全局错误处理详解
2016/04/25 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
走出JavaScript初学困境—js初学
2008/12/29 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
浅谈Python基础之I/O模型
2017/05/11 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
GLAMGLOW香港官网:明星出镜前的秘密武器
2017/03/16 全球购物
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
全球立体声:World Wide Stereo
2018/09/29 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
学习党代会心得体会
2014/09/05 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
学校德育工作总结2015
2015/05/11 职场文书
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android