作家
登录

自动生成文章摘要的代码[JavaScript 版本]

作者: 来源:www.28hudong.com 2013-03-30 03:35:59 阅读 我要评论

很多程序绕过这个问题,往往人工来决定在何处截断,太麻烦了。 实现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。 一个PHP版本的在这里!: 自动生成文章摘要[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; }

  推荐阅读

  dojo 之基础篇

假设我们的工程目录如下: -- HelloWorld.html |-- js/ -- dojo/ /*此处是dojo包下面的文件,列表如下 -- build.txt -- CHANGELOG -- demos -- .. -- dojo>>>详细阅读


本文标题:自动生成文章摘要的代码[JavaScript 版本]

地址:http://www.17bianji.com/kaifa2/JS/30689.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)