时间:2021-05-18
By dknt From bbs.blueidea.com
搜了搜这个,发现找不到答案。所以自己写了一个,很多程序绕过这个问题,往往人工来决定在何处截断,太麻烦了。
实现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。
一个PHP版本的在这里!: 自动生成文章摘要[PHP版本]。
核心部分如下:
复制代码 代码如下:
functionGenerate_Brief(text,length){
if(text.length<length)returntext;
varForemost=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;
}
测试用例如下:
[input] truncate as charactors
下面是傻娃娃的表情SHOW!!!
举头望明月
"哼,为什么欺负我,讨厌"
"呀,惨了,这下可怎么办啊,下不去了..."
"唉,愁啊,真没办法."
"呜呜,我好可怜啊,放了我吧,我都要哭了,好伤感阿..."
"喂!怎么的你!跟你说话没听着啊!"
"呵,小样的,你活腻歪了吧!"
"嘿!我是凶恶的大老虎!"
[briefing] [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
自动生成文章摘要[JavaScript版本]。我们在写BLOG这样的程序时经常需要显示文章前一部分的,但是又怕不恰当的截断破坏封闭标签以造成整个文档结构破坏,使
但是今天我突然觉得这些自动生成的摘要,字体个数太多了,有200个字体那么多。为了在一个屏幕里显示更多的文章,而又不想滚动条拉得太长,我就希望那个自动生成的摘要长
文档注释添加文档注释是一个好的编程习惯,AS提供快速生成文档注释的方法。方法1:/**+回车在函数上方输入“/**”然后回车,自动生成文档注释。方法2:快捷键我
生成文字图片://////生成文字图片////////////publicImageCreateImage(stringtext,boolisBold,intf
这几天整理了一个文档,因为要求专业,需要做文档目录,生成文档结构,现在就告诉介绍word2007自动生成目录和文档结构图的方法 ①写好了论文,怎么自动生成目录