我們在利用FckEditor編輯器的時候會有一個清除從Word粘貼過來的多餘html代碼的功能,它是利用javascript編寫的。有了這項功能以後,我們的網頁內容可以直接從Word拷貝粘貼而不用擔心內容裏會有一大堆多餘的東西佔據資料庫空間影響網頁執行的性能了。
那麼,我們參照了Fckeditor的javascript功能編寫了CFscript功能版本的ClearWord函數,利用該函數在頁面內容添加入庫時可以直接進行清除冗餘操作了。
function CleanWord(html)
{
html = REReplaceNocase(html,'\s*<\/o:p>','','all');
html = REReplaceNocase(html,'.*?<\/o:p>',' ','all');
html = REReplaceNocase(html,'\s*mso-[^:]+:[^;"]+;?','','all');
html = REReplaceNocase(html,'\s*MARGIN: 0cm 0cm 0pt\s*;','','all');
html = REReplaceNocase(html,'\s*MARGIN: 0cm 0cm 0pt\s*"','\"','all');
html = REReplaceNocase(html,'\s*TEXT-INDENT: 0cm\s*;','','all');
html = REReplaceNocase(html,'\s*TEXT-INDENT: 0cm\s*"','\"','all');
html = REReplaceNocase(html,'\s*TEXT-ALIGN: [^\s;]+;?"','\"','all');
html = REReplaceNocase(html,'\s*PAGE-BREAK-BEFORE: [^\s;]+;?"','\"','all');
html = REReplaceNocase(html,'\s*FONT-VARIANT: [^\s;]+;?"','\"','all');
html = REReplaceNocase(html,'\s*tab-stops:[^;"]*;?','','all');
html = REReplaceNocase(html,'\s*tab-stops:[^"]*','','all');
html = REReplaceNocase(html,'\s*face="[^"]*"','','all');
html = REReplaceNocase(html,'\s*face=[^ >]*','','all');
html = REReplaceNocase(html,'\s*FONT-FAMILY:[^;"]*;?','','all');
html = REReplaceNocase(html,'<(\w[^>]*) class=([^ |>]*)([^>]*)','<\1','all');
html = REReplaceNocase(html,'<(\w[^>]*) style="([^\"]*)"([^>]*)','<\1','all');
html = REReplaceNocase(html,'\s*style="\s*"','','all');
html = REReplaceNocase(html,']*>\s* \s*<\/SPAN>',' ','all');
html = REReplaceNocase(html,']*><\/SPAN>','','all');
html = REReplaceNocase(html,'<(\w[^>]*) lang=([^ |>]*)([^>]*)','<\1','all');
html = REReplaceNocase(html,'(.*?)<\/SPAN>','\1','all');
html = REReplaceNocase(html,'(.*?)<\/FONT>','\1','all');
html = REReplaceNocase(html,'<\\?\?xml[^>]*>','','all');
html = REReplaceNocase(html,'<\/?\w+:[^>]*>','','all');
html = REReplaceNocase(html,'\s*<\/H\d>','','all');
html = REReplaceNocase(html,']*)>','','all');
html = REReplaceNocase(html,']*)>','','all');
html = REReplaceNocase(html,']*)>','','all');
html = REReplaceNocase(html,']*)>','','all');
html = REReplaceNocase(html,']*)>','','all');
html = REReplaceNocase(html,']*)>','','all');
html = REReplaceNocase(html,'<\/H\d>',' ','all');
html = REReplaceNocase(html,'<(U|I|STRIKE)> <\/\1>',' ','all');
html = REReplaceNocase(html,'<([^\s>]+)[^>]*>\s*<\/\1>','','all');
html = REReplaceNocase(html,'<([^\s>]+)[^>]*>\s*<\/\1>','','all');
html = REReplaceNocase(html,'<([^\s>]+)[^>]*>\s*<\/\1>','','all');
html = REReplaceNocase(html,'(]*>.*?)(<\/P>)',' ','all');
return html;
}
|