使用JavaScript清除Microsoft Word粘贴文本

One*_*erd 24 javascript ms-word paste

我正在使用'contenteditable' <div/>并启用PASTE.

令人惊讶的是从Microsoft Word的剪贴板副本粘贴的标记代码量.我正在与此作斗争,并且已经使用Prototypes的stripTags()功能获得了大约1/2的方式(遗憾的是,这似乎不能让我保留一些标签).

然而,即使在那之后,我最终还是会有一些令人费解的不必要的标记代码.

所以我的问题是,是否有一些功能(使用JavaScript),或者我可以使用哪种方法来清理大部分不需要的标记?

One*_*erd 22

这是我写完的功能,它完成了相当好的工作(据我所知,无论如何).

如果有人有,我当然愿意接受改进建议.谢谢.

function cleanWordPaste( in_word_text ) {
 var tmp = document.createElement("DIV");
 tmp.innerHTML = in_word_text;
 var newString = tmp.textContent||tmp.innerText;
 // this next piece converts line breaks into break tags
 // and removes the seemingly endless crap code
 newString  = newString.replace(/\n\n/g, "<br />").replace(/.*<!--.*-->/g,"");
 // this next piece removes any break tags (up to 10) at beginning
 for ( i=0; i<10; i++ ) {
  if ( newString.substr(0,6)=="<br />" ) { 
   newString = newString.replace("<br />", ""); 
  }
 }
 return newString;
}
Run Code Online (Sandbox Code Playgroud)

希望这对你们中的一些人有所帮助.