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 插件实现图片延迟加载效果代码
Feb 06 Javascript
如何使用Javascript获取距今n天前的日期
Jul 08 Javascript
IE的事件传递-event.cancelBubble示例介绍
Jan 12 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
javascript常用的正则表达式实例
May 15 Javascript
九种原生js动画效果
Nov 11 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
vue.js中父组件调用子组件的内部方法示例
Oct 22 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 Javascript
node使用async_hooks模块进行请求追踪
Jan 28 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
JS实现商品倒计时实现代码
2013/05/03 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
python列表list保留顺序去重的实例
2018/12/14 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
Python time库基本使用方法分析
2019/12/13 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
产品包装策划方案
2014/05/18 职场文书
工人先锋号申报材料
2014/12/29 职场文书
同学聚会通知书
2015/04/20 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
导游词之天津盘山
2019/11/01 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL