这是一段去除烦人的WORD及EXCEL冗余代码(Javascript),只用翻译替换部分,谢谢,就这么多分了,随后再补也可以啊~在线等
<script>
function GetClipboardHTML()
{
var oDiv = document.getElementById("divTemp")
oDiv.innerHTML = "" ;
var oTextRange = document.body.createTextRange() ;
oTextRange.moveToElementText(oDiv) ;
oTextRange.execCommand("Paste") ;
var sData = oDiv.innerHTML ;
oDiv.innerHTML = "" ;
return sData ;
}
function cleanAndPaste( html )
{
// SPAN
html = html.replace(/<\/?SPAN[^>]*>/gi, "" );
// Class
html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
// Style
html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3") ;
// Lang
html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
// XML元素及声明
html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
// 带XML名称空间声明: <o:p></o:p>
html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
// 替换
html = html.replace(/ /, " " );
// 将<P>换成<DIV>
var re = new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi") ;// Different because of a IE 5.0 error
html = html.replace( re, "<div$2</div>" ) ;
html = html.replace(/(<T[RD])(\s*)(HEIGHT=[\"\']?\d+[\"\']?)/gi, "$1");
html = html.replace(/(<table)([^>]*?)x:str>/gi, "$1$2align='center'>");
html = html.replace(/(<TD)\s*([^>]*?)(width=[\"\']?\d+[\"\']?)([^>]*?)(>)/gi, "$1$2$4$5");
html = html.replace(/(\s*x:num(=[\"\']\d+")?)(>)/gi, "$3");
//insertHtml( html ) ;
//return html;
Form1.my.value = html;
}
function Paste()
{
var sHTML = GetClipboardHTML() ;
var re = /<\w[^>]* class="?MsoNormal"?/gi ;
var re2 = /<\w[^>]* class="?xl"?/gi ;
if ( re.test( sHTML ) )
{
alert("您要粘贴的内容好像是来自 MS Word,系统将清除 MS Word 格式后再粘贴!")
}
if ( re2.test( sHTML ) )
{
alert("您要粘贴的内容好像是来自 MS Excel,系统将清除 MS Excel 格式后再粘贴!")
}
cleanAndPaste( sHTML ) ;
}
function runCode(code)
{
var pop=window.open("","_blank");
pop.document.writeln(code);
pop.location.reload();
}
function Copy()
{
document.getElementById("my").select();
document.execCommand('Copy');
}
</script>
------解决方案--------------------
正则而已。。随手复制粘贴的正则和替换的,自己检查下复制对了没有
- VBScript code
function cleanAndPaste( html ) '{ ' SPAN dim rx set rx=new RegExp rx.Global=true rx.IgnoreCase=true 'html = html.replace(/<\/?SPAN[^>]*>/gi, "" ) rx.Pattern="<\/?SPAN[^>]*>" html=rx.Replace(html,"") ' Class 'html = html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ; rx.Pattern="<(\w[^>]*) class=([^ |>]*)([^>]*)" html=rx.Replace(html,"<$1$3") ' Style 'html = html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3") ; rx.Pattern="<(\w[^>]*) style=""([^""]*)""([^>]*)" html=rx.Replace(html,"<$1$3") ' Lang 'html = html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ; rx.Pattern="<(\w[^>]*) lang=([^ |>]*)([^>]*)" html=rx.Replace(html,"<$1$3") ' XML元素及声明 'html = html.replace(/<\\?\?xml[^>]*>/gi, "") ; rx.Pattern="<\\?\?xml[^>]*>" html=rx.Replace(html,"") ' 带XML名称空间声明: <o:p></o:p> 'html = html.replace(/<\/?\w+:[^>]*>/gi, "") ; rx.Pattern="<\/?\w+:[^>]*>" html=rx.Replace(html,"") ' 替换 'html = html.replace(/ /, " " ); rx.Pattern="/ /" html=rx.Replace(html," ") ' 将<P>换成<DIV> 'var re = new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi") ;// Different because of a IE 5.0 error 'html = html.replace( re, "<div$2</div>" ) ; rx.Pattern="(<P)([^>]*>.*?)(<\/P>)" html=rx.Replace(html,"<div$2</div>") 'html = html.replace(/(<T[RD])(\s*)(HEIGHT=[\"\']?\d+[\"\']?)/gi, "$1"); rx.Pattern="(<T[RD])(\s*)(HEIGHT=[\""\']?\d+[\""\']?)" html=rx.Replace(html,"$1") 'html = html.replace(/(<table)([^>]*?)x:str>/gi, "$1$2align='center'>"); rx.Pattern="(<table)([^>]*?)x:str>" html=rx.Replace(html,"$1$2align='center'>") 'html = html.replace(/(<TD)\s*([^>]*?)(width=[\"\']?\d+[\"\']?)([^>]*?)(>)/gi, "$1$2$4$5"); rx.Pattern="(<TD)\s*([^>]*?)(width=[\""\']?\d+[\""\']?)([^>]*?)(>)" html=rx.Replace(html,"$1$2$4$5") 'html = html.replace(/(\s*x:num(=[\"\']\d+")?)(>)/gi, "$3"); rx.Pattern="(\s*x:num(=[\""\']\d+"")?)(>)" html=rx.Replace(html,"$3") 'insertHtml( html ) ; 'return html; cleanAndPaste = html '} end function