正規表現を使ってラベルの内容を変更するには
1514 ワード
最近はレポートの印刷をする時、怠けたいので、レポートの展示ページの中のHTMLを全部別のページにコピーして、直接windowsのプリンタを呼び出します.
実現の過程でいくつかの問題が発生しました.
1、ページの中にバックグラウンドからJavaScriptがあります.
2、ページにはいくつかのDIVが隠れています.DIVにはいくつかのiframeがあります.それらは他のページを指し、親ページのいくつかのデータを参照していますが、現在展示されているページはHTMLのみコピーしていますので、しょっちゅうエラーが発生します.
サボるために、javascriptの正規表現を書きました.
var reg=/<script language=[\"]?javascript[\"]?[^>]*>((.|
|\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;
説明:これは主に差早frameの中の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タグを探して、ここでメモリ不足をヒントします.