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 三种不同位置代码的写法
Oct 25 Javascript
jquery异步循环获取功能实现代码
Sep 19 Javascript
JavaScript获取FCK编辑器信息的具体方法
Jul 12 Javascript
jQuery实现select模糊查询(反射机制)
Jan 14 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 Javascript
ES6生成器用法实例分析
Apr 10 Javascript
详解如何实现一个简单的Node.js脚手架
Dec 04 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 Javascript
vue-cli 打包使用history模式的后端配置实例
Sep 20 Javascript
JS使用iView的Dropdown实现一个右键菜单
May 06 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
Dec 04 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
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
解析Python编程中的包结构
2015/10/25 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
numpy.where() 用法详解
2019/05/27 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
python实现邮件循环自动发件功能
2020/09/11 Python
使用django自带的user做外键的方法
2020/11/30 Python
css3中背景尺寸background-size详解
2014/09/02 HTML / CSS
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
捷克厨房用品购物网站:Tescoma
2018/07/13 全球购物
药学专业毕业生求职信
2013/10/20 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
留学推荐信中文范文
2015/03/26 职场文书
党支部半年考察意见
2015/06/01 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python