温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用js正则匹配table,img及去除各种标签问题

发布时间:2021-06-24 09:17:42 来源:亿速云 阅读:169 作者:小新 栏目:互联网科技

这篇文章主要介绍如何使用js正则匹配table,img及去除各种标签问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

核心代码

//获取公示栏内容      s = "$row.detail$";      mainContent =s;            //如果有多个table使用下面注释的正则只会匹配成一个table      //var tabReg = /<table[^>]*>((?!table).)*<\/table>/gi;     //匹配单个table      var tabReg = /<table[^>]*>\s*(<tbody[^>]*>)?(\s*<tr[^>]*>[\s\S]*?<\/tr>\s*)*(<\/tbody>)?\s*<\/table>/gi;      var tabMatch = tabReg.test(s);            var tabMatchContentArray = s.match(tabReg);        if(tabMatch)      {              mainContent = s.replace(tabReg,"#");      }            //对img标签进行匹配      var imgReg = /<img.*?(?:>|\/>)/gi;            imgMatchContentArray = s.match(imgReg);           if(imgReg.test(s))      {       //将img标签替换为*       mainContent = mainContent.replace(imgReg,"*");      }      //处理html标签      mainContent = mainContent.replace(/&nbsp;/gi," ");      var pReg1 = /<p>/gi;      var pReg2 = /<\/p>/gi;      mainContent = mainContent.replace(pReg1,"").replace(pReg2,"<br />");      //下面的htmlReg1 ,htmlReg2可以匹配任意标签 //     var htmlReg1 =/<[^>]+>/gi; //     var htmlReg2 =/<(.+?)[\s]*\/?[\s]*>/gi; //      //     mainContent = mainContent.replace(htmlReg1,"").replace(htmlReg2,"");      //mainContent = mainContent.replace(/&/gi,"<p>").replace(/@/gi,"</p>");     var pageIndex = 1;     var size = 500;     var tableContentArray = mainContent.split("#");     var array = []; //存放以table分割后的数组中每个数组可以分作几页          var arrayIndex = []; //存放table在内容中的索引          var len =0;     for(var i=0;i<tableContentArray.length;i++)     {       var con = tableContentArray[i];              len += con.length;              arrayIndex[i] = len;              array[i] = Math.ceil(con.length /size);     }               var tableIndexArray = [];//存放table内容页码数          var sum = 1;          for(var j=0;j<array.length-1;j++)     {              sum += array[j];       tableIndexArray[j] = sum;     }               var currentPageContent = mainContent.substr((pageIndex-1)*size,size);               if(tableIndexArray.indexOf(pageIndex) >= 0)     {       currentPageContent = tabMatchContentArray[tableIndexArray.indexOf(pageIndex)];     }               if(currentPageContent.indexOf("#")!= -1)     {              var beginToCurrentPageContent = mainContent.substr(0,pageIndex*size);             var tabLastIndex = beginToCurrentPageContent.lastIndexOf("#");       currentPageContent = currentPageContent.substr(0,tabLastIndex-(pageIndex-1)*size);         //当前页是否有 * 获取最后一个 * 的位置        var indexOf = currentPageContent.indexOf("*");              if(indexOf >= 0)       {                   //获取开始到当前页位置的内容 中的 * 的最后的下标           var reCount = beginToCurrentPageContent.split("*").length - 1;                     var contentArray = currentPageContent.split("*");                    currentPageContent = replaceImgContent(contentArray,reCount,imgMatchContentArray);         }              }     else     {              //当前页是否有 * 获取最后一个 * 的位置        var indexOf = currentPageContent.indexOf("*");              if(indexOf >= 0)       {          //获取从开始位置到当前页位置的内容          var beginToCurrentPageContent = mainContent.substr(0,pageIndex*size);                    //获取开始到当前页位置的内容 中的 * 的最后的下标           var reCount = beginToCurrentPageContent.split("*").length - 1;                     var contentArray = currentPageContent.split("*");                    currentPageContent = replaceImgContent(contentArray,reCount,imgMatchContentArray);                 }            }          if(currentPageContent=="")     {       alert("页码数超过范围");     }     else     {        document.getElementById("annouContent").innerHTML= currentPageContent;     }          /* currentArray:当前页以 * 分割后的数组       replaceCount:从开始内容到当前页的内容 * 的个数       matchArray : img标签的匹配的内容     */     function replaceImgContent(currentArray,replaceCount,matchArray)     {             var result = "";       for(var i=currentArray.length -1,j = replaceCount-1 ;i>=1; i--)       {                 var temp = (matchArray[j] + currentArray[i]);         result = temp + result;         j--;       }             result = currentArray[0] + result ;             return result;     }       </script>

下面是一些补充

js正则匹配删除table

var reg = /<[\/]*(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及去除各种标签问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI