关于使用正则表达式修改标签内容
?
?
最近在做报表打印的时候,想偷懒一下,于是就将报表展示的页面里面的HTML全盘拷贝到另一个页面,然后直接调用windows的打印机,即(window.print方法)。
?
在实现过程中,出现了几个问题:
1、页面里面有后台传过来的JavaScript
2、页面中隐藏了一些DIV,DIV里面有一些iframe,它们会指向别的网页,并引用父页面的一些数据,但是因为当前展示的页面只拷贝了HTML,所以经常会报错
?
为了偷懒,于是写下了这些javascript的正则表达式
var reg=/<script language=["]?javascript["]?[^>]*>((.|\n|\t|\r)*?)<\/script>/gim;?
说明:这个主要是去掉HTML中的JavaScript
?
var ifrReg = /< *?iframe[^>]*?(src *?= *?"[^>]*?oss\/birt_report\/multiSelect.jsp[^>]*?")[^>]*? *?>/gim;?
说明:这个主要是查找那些特殊的iframe
?
var srcReg = /src *?= *?"[^>]*?oss\/birt_report\/multiSelect.jsp[^>]*?"/gim;?
说明:这个主要是差早iframe里面的src
?
function replaceWord(word){return word.replace(srcReg,"src=""");}aDiv.innerHTML = bDiv.innerHTML.replace(reg,"").replace(ifrReg,replaceWord);?说明:替换
?
?
?
?
?
其实还有几个正则表达式,主要是想将HTML里面的隐藏的DIV挖出来,但是出现内存不足的提示,还是贴出来吧:
?
/]*?style *?= *?"[^>]*?display *?: *?none *?;[^>]*?" *?>/gim
说明:获取被隐藏的div标签
?
/]*?>((?!(]*?>))|\s)*?/gim
说明:查找成对的div标签,这里提示内存不足
?