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 相关文章推荐
用JavaScript事件串连执行多个处理过程的方法
Mar 09 Javascript
jQuery.validate 常用方法及需要注意的问题
Mar 20 Javascript
js转义字符介绍
Nov 05 Javascript
javascript继承机制实例详解
Nov 20 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 Javascript
JS仿JQuery选择器功能
Mar 08 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
May 09 Javascript
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
JavaScript适配器模式原理与用法实例详解
Mar 09 Javascript
Vue如何实现监听组件原生事件
Jul 03 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留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
学习php分页代码实例
2013/10/24 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
vue路由传参三种基本方式详解
2019/12/09 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python中 * 的用法详解
2019/07/10 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
Python连接字符串过程详解
2020/01/06 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
html5使用canvas画三角形
2014/12/15 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
网吧消防安全制度
2014/01/28 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
3的组成教学反思
2014/04/30 职场文书
公司委托书怎么写
2014/08/02 职场文书
小学运动会演讲稿
2014/08/25 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
导游词范文
2015/02/13 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
欠款证明
2015/06/24 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers