当前位置:首页 > 通信资讯 > 正文

js正则过滤html标签(js正则匹配html标签)

核心代码

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 //获取公示栏内容 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及去除各种标签问题的详细内容,更多关于js正则匹配table,img的资料请关注服务器之家其它相关文章!

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。