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 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
JavaScript 设计模式学习 Factory
Jul 29 Javascript
javascript 自动填写表单的实现方法
Apr 09 Javascript
js判断是否为ie的方法小结
Jan 13 Javascript
用JS在浏览器中创建下载文件
Mar 05 Javascript
js发送短信倒计时的简单实现方法
Sep 08 Javascript
websocket4.0+typescript 实现热更新的方法
Aug 14 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
Sep 05 Javascript
JavaScript之Blob对象类型的具体使用方法
Nov 29 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 Javascript
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
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的安全策略
2006/10/09 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
浅谈python中get pass用法
2019/03/19 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
python开发入门——set的使用
2020/09/03 Python
python判断变量是否为列表的方法
2020/09/17 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
试用期转正员工自我评价
2014/09/18 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
杭白菊导游词
2015/02/10 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
使用pandas模块实现数据的标准化操作
2021/05/14 Python
Python源码解析之List
2021/05/21 Python
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL