很多程序绕过这个问题,往往人工来决定在何处截断,太麻烦了。 实现内容:截断一段含有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
1/2 1