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 相关文章推荐
JSON取值前判断
Dec 23 Javascript
JQuery中上下文选择器实现方法
May 18 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
Jun 19 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
jQuery自定义动画函数实例详解(附demo源码)
Dec 10 Javascript
JavaScript学习笔记整理之引用类型
Jan 22 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
Jun 13 Javascript
浅谈通过JS拦截 pushState和replaceState事件
Jul 21 Javascript
JavaScript基础进阶之数组方法总结(推荐)
Sep 04 Javascript
使用 vue-i18n 切换中英文效果
May 23 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
Jul 27 Javascript
Vue+webpack+Element 兼容问题总结(小结)
Aug 16 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面试题 试试看看你会不会也中招
2014/08/19 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python测试驱动开发实例
2014/10/08 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
详解K-means算法在Python中的实现
2017/12/05 Python
python修改txt文件中的某一项方法
2018/12/29 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
Python列表的切片实例讲解
2019/08/20 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
美国在线印刷公司:PsPrint
2017/10/12 全球购物
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
残疾人创业典型事迹
2014/02/01 职场文书
给校长的建议书200字
2014/05/16 职场文书
演讲稿格式范文
2014/05/19 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB