读书人

关于应用正则表达式修改标签内容

发布时间: 2012-10-31 14:37:32 作者: rapoo

关于使用正则表达式修改标签内容

?

?

最近在做报表打印的时候,想偷懒一下,于是就将报表展示的页面里面的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标签,这里提示内存不足

?

读书人网 >Web前端

热点推荐