核心代码
//获取公示栏内容
s="$row.detail$";
mainContent=s;
//如果有多个table使用下面注释的正则只会匹配成一个table
//vartabReg=/
]*>((?!table).)*<\/table>/gi;
//匹配单个table
vartabReg=/]*>\s*(]*>)?(\s*]*>[\s\S]*?<\/tr>\s*)*(<\/tbody>)?\s*<\/table>/gi;
vartabMatch=tabReg.test(s);
vartabMatchContentArray=s.match(tabReg);
if(tabMatch)
{
mainContent=s.replace(tabReg,"#");
}
//对img标签进行匹配
varimgReg=/|\/>)/gi;
imgMatchContentArray=s.match(imgReg);
if(imgReg.test(s))
{
//将img标签替换为*
mainContent=mainContent.replace(imgReg,"*");
}
//处理html标签
mainContent=mainContent.replace(/ /gi,"");
varpReg1=//gi;
varpReg2=/<\/p>/gi;
mainContent=mainContent.replace(pReg1,"").replace(pReg2,"
");
//下面的htmlReg1,htmlReg2可以匹配任意标签
//varhtmlReg1=/<[^>]+>/gi;
//varhtmlReg2=/<(.+?)[\s]*\/?[\s]*>/gi;
//
//mainContent=mainContent.replace(htmlReg1,"").replace(htmlReg2,"");
//mainContent=mainContent.replace(/&/gi,"
").replace(/@/gi,"
");
varpageIndex=1;
varsize=500;
vartableContentArray=mainContent.split("#");
vararray=[];//存放以table分割后的数组中每个数组可以分作几页
vararrayIndex=[];//存放table在内容中的索引
varlen=0;
for(vari=0;i=0)
{
currentPageContent=tabMatchContentArray[tableIndexArray.indexOf(pageIndex)];
}
if(currentPageContent.indexOf("#")!=-1)
{
varbeginToCurrentPageContent=mainContent.substr(0,pageIndex*size);
vartabLastIndex=beginToCurrentPageContent.lastIndexOf("#");
currentPageContent=currentPageContent.substr(0,tabLastIndex-(pageIndex-1)*size);
//当前页是否有*获取最后一个*的位置
varindexOf=currentPageContent.indexOf("*");
if(indexOf>=0)
{
//获取开始到当前页位置的内容中的*的最后的下标
varreCount=beginToCurrentPageContent.split("*").length-1;
varcontentArray=currentPageContent.split("*");
currentPageContent=replaceImgContent(contentArray,reCount,imgMatchContentArray);
}
}
else
{
//当前页是否有*获取最后一个*的位置
varindexOf=currentPageContent.indexOf("*");
if(indexOf>=0)
{
//获取从开始位置到当前页位置的内容
varbeginToCurrentPageContent=mainContent.substr(0,pageIndex*size);
//获取开始到当前页位置的内容中的*的最后的下标
varreCount=beginToCurrentPageContent.split("*").length-1;
varcontentArray=currentPageContent.split("*");
currentPageContent=replaceImgContent(contentArray,reCount,imgMatchContentArray);
}
}
if(currentPageContent=="")
{
alert("页码数超过范围");
}
else
{
document.getElementById("annouContent").innerHTML=currentPageContent;
}
/*currentArray:当前页以*分割后的数组
replaceCount:从开始内容到当前页的内容*的个数
matchArray:img标签的匹配的内容
*/
functionreplaceImgContent(currentArray,replaceCount,matchArray)
{
varresult="";
for(vari=currentArray.length-1,j=replaceCount-1;i>=1;i--)
{
vartemp=(matchArray[j]+currentArray[i]);
result=temp+result;
j--;
}
result=currentArray[0]+result;
returnresult;
}
下面是一些补充
js正则匹配删除table
varreg=/<[\/]*(table|td|tr)[a-zA-z=''""]*>|123/g
一个JAVASCRIPT正则表达式,Table中只保留ColSpan和RowSpan
html=html.replace(/<(TBODY|THEAD|TFOOT|TH|TR|TD)[^>]*?(ColSpan\s*=\s*["']?[^"'>\s]*["']?[^>]*?)?(RowSpan\s*=\s*["']?[^"'>\s]*["']?[^>]*?)?>/gi,"<$1$2$3>");
以上就是js正则匹配table,img及去除各种标签问题的详细内容,更多关于js正则匹配table,img的资料请关注毛票票其它相关文章!