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

本文介绍了一种从HTML中移除JavaScript代码和特定iframe的方法,以解决打印报表时遇到的问题。通过使用正则表达式匹配并替换这些元素,确保打印预览时不会因外部依赖而引发错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值