JavaScript 版本自动生成文章摘要

 更新时间:2008年07月23日 09:14:00   作者:  
搜了搜这个,发现找不到答案。所以自己写了一个,很多程序绕过这个问题,往往人工来决定在何处截断 ,太麻烦了。
实现内容:截断一段含有HTML代码的文本,但是不会出现围堵标记没有封闭的问题。

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;
}

相关文章

  • 详解使用fetch发送post请求时的参数处理

    详解使用fetch发送post请求时的参数处理

    这篇文章主要介绍了详解使用fetch发送post请求时的参数处理的相关资料,需要的朋友可以参考下
    2017-04-04
  • JS中的算法与数据结构之列表(List)实例详解

    JS中的算法与数据结构之列表(List)实例详解

    这篇文章主要介绍了JS中的算法与数据结构之列表(List),结合实例形式分析了javascript列表的概念、原理以及定义、添加、删除、查找等相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • 前端构建工具之gulp的配置与搭建详解

    前端构建工具之gulp的配置与搭建详解

    gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,下面这篇文章主要给大家介绍了关于前端构建工具之gulp的配置与搭建的相关资料,需要的朋友可以参考下。
    2017-06-06
  • JavaScript ES5标准中新增的Array方法

    JavaScript ES5标准中新增的Array方法

    这篇文章主要介绍了JavaScript ES5标准中新增的Array方法 的相关资料,需要的朋友可以参考下
    2016-06-06
  • 浅谈webpack 构建性能优化策略小结

    浅谈webpack 构建性能优化策略小结

    webpack以其丰富的功能和灵活的配置而深受业内吹捧,逐步取代了grunt和gulp成为大多数前端工程实践中的首选,这篇文章主要介绍了浅谈webpack 构建性能优化策略小结,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • js改变Iframe中Src的方法

    js改变Iframe中Src的方法

    这篇文章主要介绍了js改变Iframe中Src的方法,涉及javascript操作网页元素属性的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • 20个常见的JavaScript数组操作总结

    20个常见的JavaScript数组操作总结

    JavaScript中的Array对象与其他编程语言中的数组一样,是一组数据的集合。在JavaScript中,数组里面的数据可以是不同类型的,并具有用于执行数组常见操作的方法,本文整理了一些常用的,需要的可以参考一下
    2022-09-09
  • JavaScript获取页面中表单(form)数量的方法

    JavaScript获取页面中表单(form)数量的方法

    这篇文章主要介绍了JavaScript获取页面中表单(form)数量的方法,涉及javascript操作表单document.forms数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • uniapp 手机验证码输入框实现代码(随机数、倒计时、隐藏手机号码中间四位)可以直接使用

    uniapp 手机验证码输入框实现代码(随机数、倒计时、隐藏手机号码中间四位)可以直接使用

    这篇文章主要介绍了uniapp 手机验证码输入框(随机数、倒计时、隐藏手机号码中间四位),实现思路通过创建六个正方形的view,然后创建一个数字input,最大输入长度为六位(根据验证码的长度),再将input隐藏掉,获取到的值分别放到六个view中,需要的朋友可以参考下
    2023-02-02
  • 小程序实现分页查询列表的模板

    小程序实现分页查询列表的模板

    这篇文章主要为大家详细介绍了小程序实现分页查询列表的模板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08

最新评论