欢迎来到福编程网,本站提供各种互联网专业知识!

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

发布时间:2007-03-20 作者: 来源:转载
很多程序绕过这个问题,往往人工来决定在何处截断,太麻烦了。实现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。一个PHP版本的在这里!:自动生成文章摘要[PHP版本]。核心部分如下:复制代码代码如下:functionGenerate_Brief(text
很多程序绕过这个问题,往往人工来决定在何处截断,太麻烦了。
实现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。
一个PHP版本的在这里!:自动生成文章摘要[PHP版本]。
核心部分如下:
复制代码 代码如下:
functionGenerate_Brief(text,length){
if(text.lengthvarForemost=text.substr(0,length);
varre=/<(/?)(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;
varSinglable=/BASE|META|LINK|HR|BR|PARAM|IMG|AREA|INPUT/i
varStack=newArray(),posStack=newArray();
while(true){
varnewone=re.exec(Foremost);
if(newone==null)break;
if(newone[1]==""){
varElem=newone[2];
if(Elem.match(Singlable)&&newone[3]!=""){
continue;
}
Stack.push(newone[2].toUpperCase());
posStack.push(newone.index);
if(newone[3]=="")break;
}else{
varStackTop=Stack[Stack.length-1];
varEnd=newone[2].toUpperCase();
if(StackTop==End){
Stack.pop();
posStack.pop();
if(newone[3]==""){
Foremost=Foremost+">";
}
}
};
}
varcutpos=posStack.shift();
Foremost=Foremost.substring(0,cutpos);
returnForemost;
}

相关推荐