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


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



相关阅读:
配置FreeBSD的网关和网络服务
CSS初学者常犯错误汇总
PHP4 与 MySQL 交互使用
php 字符过滤类,用于过滤各类用户输入的数据
织梦DedeCMS V5.7缩略图站内上传修正
Win2000上安装PHP+MYSQL(IIS版)
微软.NET Visual Studio 2008 功能提升
从MySql导出数据到 Access中——实践小结
用Tmpfs文件系统加速Linux运行
Linux操作系统httpd启动失败的解决方法
HTML5网页设计:hgroup元素使用
javascript dom 基本操作小结
Vista音频属性设置导致QQ视频不能看电影
修改好的jquery滚动字幕效果实现代码
快速导航

Copyright © 2016 phpStudy |