var getAbstract=function(n){
n=(n)?parseInt(n)-1:-1;//0 - n-1的字符长度为n.
var html=null;
if (config.htmlOn == true)
{
var div=document.createElement("DIV");
div.innerHTML=Editor.editor.contentWindow.document.body.innerHTML;
html=div.innerText;
delete div;
}
else
{
html=Editor.editor.contentWindow.document.body.innerHTML;
}
html=html.replace(/<\s*script[^>]*>.*<\s*\/script[^>]*>/ig,"").replace(/<\s*script[^>]*>/ig,"").replace(/<\s*\/script[^>]*>/ig,"");
if(n>0)
{
//匹配所有的HTML Tag
var pattern='<[^>]*>';
var reg = new RegExp(pattern,'ig');
var lastIndex=n;
var arr;
//循环直到第n个字符在当前匹配式之间或者之前时跳出
while ((arr = reg.exec(html)) != null)
{
//当下一个匹配式<*>(表示为Tag)的起始位置超过n,则表示第n个字符处在当前匹配式之前
if(arr.index>=n)break;
//此时两种情况,一种是第n个字符在当前匹配式之间,另一种是当前匹配式在第n个字符之前
lastIndex=arr.lastIndex;
//当下一个匹配式<*>(表示为Tag)的结束位置超过n,则表示第n个字符处在当前匹配式之间
if(lastIndex>=n)break;
}
//为了不截断第n个字符附近的Tag,需要根据情况重新指定截断的位置
//第n个字符在循环中跳出时的匹配式之间的时候,需要将n指定到该匹配式的结束处,以免截断
if(lastIndex>n)n=lastIndex;
//匹配一些不能被截断的前后都必须有的HTML TAG
var tags='table|div|span|b|i|u|ul|ol|strong|embed|object|center|strike|iframe';
function recursionRegular(n)
{
if(n==1)
{
return '[^<]*((<\s*\\1[^>]*'+'.*' +'</\s*\\1[^>]*>)|(<(?!/?\s*\\1)[^>]*>[^<]*))*[^<]*';
}
else
{
return '[^<]*((<\s*\\1[^>]*'+recursionRegular(n-1)+'</\s*\\1[^>]*>)|(<(?!/?\s*\\1)[^>]*>[^<]*))*[^<]*';
}
}
pattern='<\s*('+tags+')[^>]*>'+recursionRegular(4)+'</\s*\\1[^>]*>';
// pattern='<\s*(table|div|span|b|i|u|ul|ol|strong|embed|object|center|strike|iframe|button)[^>]*>[^<]*</\s*\\1[^>]*>';
reg = new RegExp(pattern,'ig');
//循环直到第n个字符在当前匹配式之间或者之前时跳出
while ((arr = reg.exec(html)) != null)
{
//当下一个匹配式<*>(表示为Tag)的起始位置超过n,则表示第n个字符处在当前匹配式之前
if(arr.index>=n)break;
//此时两种情况,一种是第n个字符在当前匹配式之间,另一种是当前匹配式在第n个字符之前
lastIndex=arr.lastIndex;
//当下一个匹配式<*>(表示为Tag)的结束位置超过n,则表示第n个字符处在当前匹配式之间
if(lastIndex>=n)break;
}
//为了不截断第n个字符附近的Tag,需要根据情况重新指定截断的位置
//第n个字符在循环中跳出时的匹配式之间的时候,需要将n指定到该匹配式的结束处,以免截断
if(lastIndex>n)n=lastIndex;
return html.substring(0,n);
}
else
{
return html;
}
}
分享到:
相关推荐
JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)JavaScript函数(源代码)...
Java代码调用HTML5中的JS函数算法,这样就可以轻松解密..
c#代码与javascript函数的相互调用
C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用
C#代码与javaScript函数的相互调用,几个不同的方法和示例
js 函数 javaScript 自定义函数一览表 js 函数 javaScript 自定义函数一览表
HTML5数学函数公式计算代码基于Bootstrap.3.3.4制作,有五次函数、三角函数计算功能,可输出图像。
TIA博途WINCC的触摸屏VB脚本入门(Len函数获取字符串长度以及Right和Left函数)
javascript函数中执行C#代码中的函数
jquery下组织javascript代码(js函数化).docx
php截取html源代码的简单函数simplehtmldom
获取中文字符串长度的函数(VB6.0代码编写) 获取中文字符串长度的函数,输入汉字,计算机将会计算汉字长度 QQ223857666勾月
获取中文字符串长度的函数(VB6.0代码编写)
C语言编程-编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度;
获取Javascript函数名称 获取Javscript执行函数名称的方法
javascript函数中执行C#代码中的函数.docx
C#代码与javaScript函数的相互调用.docx