在JAVASCRIPT中粘贴到RTE时删除MS Word格式
我使用的是一个EXTJS HTML编辑器,字符是2000,但是当你从Word复制时,我正在剥离所有的MS Word格式,我使用的是我在这里找到的这个函数在JAVASCRIPT中粘贴到RTE时删除MS Word格式,javascript,extjs,ms-word,Javascript,Extjs,Ms Word,我使用的是一个EXTJS HTML编辑器,字符是2000,但是当你从Word复制时,我正在剥离所有的MS Word格式,我使用的是我在这里找到的这个函数 function cleanHTML(input) { // 1. remove line breaks / Mso classes var stringStripper = /(\n|\r| class=(")?Mso[a-zA-Z]+(")? ^p)/g; var output = input.replace(str
function cleanHTML(input) {
// 1. remove line breaks / Mso classes
var stringStripper = /(\n|\r| class=(")?Mso[a-zA-Z]+(")? ^p)/g;
var output = input.replace(stringStripper, ' ');
// 2. strip Word generated HTML comments
var commentSripper = new RegExp('<!--(.*?)-->','g');
var output = output.replace(commentSripper, '');
// 3. remove tags leave content if any
var tagStripper = new RegExp('<(/)*(meta|link|span|\\?xml:|st1:|o:|font)(.*?)>','gi');
output = output.replace(tagStripper, '');
// 4. Remove everything in between and including tags '<style(.)style(.)>'
var badTags = ['style', 'script','applet','embed','noframes','noscript'];
for (var i=0; i< badTags.length; i++) {
tagStripper = new RegExp('<'+badTags[i]+'.*?'+badTags[i]+'(.*?)>', 'gi');
output = output.replace(tagStripper, '');
}
// 5. remove attributes ' style="..."'
var badAttributes = ['style', 'start'];
for (var i=0; i< badAttributes.length; i++) {
var attributeStripper = new RegExp(' ' + badAttributes[i] + '="(.*?)"','gi');
output = output.replace(attributeStripper, '');
}
return output;
}
函数cleanHTML(输入){
//1.删除换行符/Mso类
var stringStripper=/(\n |\r | class=(“”)Mso[a-zA-Z]+(“”?^p)/g;
var输出=输入。替换(stringStripper“”);
//2.剥离Word生成的HTML注释
var commentSripper=new RegExp(“”,'g');
var output=output.replace(commentSripper,”);
//3.删除标签并保留内容(如果有)
var tagStripper=newregexp(“”,'gi');
输出=输出。替换(标记剥离器“”);
//4.移除中间的所有物品,包括标签“
var badTags=['style','script','applet','embed','noframes','noscript'];
对于(var i=0;i
但是,我想保持字体颜色不变,我已尝试删除font参数,但不起作用。假设
- 所示版本按预期工作
- 您已验证HTML是否包含
,而不是 - 您只对regexp有问题
new RegExp('<(/)*(meta|link|span|\\?xml:|st1:|o:|font)(.*?)>','gi');
newregexp(“”,'gi');
与
newregexp(“”,'gi');
字体标记将不会从插入的HTML中删除,您将正确看到颜色。我本周遇到了这个问题,并找到了这篇文章,我认为一个可靠的回复可能会帮助其他人解决问题。以下是我经过几天工作后的发现:
我一直在尝试做同样的事情,Alexander的答案并不能解决这个问题,因为
在哪里找到的?在这种情况下,有参考是很好的。@code4jhon“在这里找到”我的意思是在“StackOverflow”这里找到是的,但我的意思是,如果有一个链接,可以链接到您实际获得代码的位置,即使它引用了另一个SO问题。
new RegExp('<(/)*(meta|link|span|\\?xml:|st1:|o:)(.*?)>','gi');
function CleanWordFormatting(input) {
// 1. Remove line breaks / Mso classes
var stringStripper = /(\n|\r| class=(")?Mso[a-zA-Z]+(")?)/g;
var output = input.replace(stringStripper, ' ');
// 2. Strip Word generated HTML comments
var commentSripper = new RegExp('<!--(.*?)-->', 'g');
var output = output.replace(commentSripper, '');
var tagStripper = new RegExp('<(/)*(meta|link|\\?xml:|st1:|o:|font)(.*?)>', 'gi');
// 3. Remove tags leave content if any
output = output.replace(tagStripper, '');
// 4. Remove everything in between and including tags '<style(.)style(.)>'
var badTags = ['style', 'script', 'applet', 'embed', 'noframes', 'noscript'];
for (var i = 0; i < badTags.length; i++) {
tagStripper = new RegExp('<' + badTags[i] + '.*?' + badTags[i] + '(.*?)>', 'gi');
output = output.replace(tagStripper, '');
}
// 5. Remove any unwanted styling
// NOTE: Add your own list of 'blacklisted' css attributes here
var badStyling = ['margin-top:', 'margin-bottom:', 'line-height:', 'mso-fareast-font-family:"', 'font-weight:', 'margin:'];
for (var i = 0; i < badStyling.length; i++) {
attrStripper = new RegExp('(' + badStyling[i] + ')([^;]*)+[^]', 'gm');
output = output.replace(attrStripper, '');
}
// 6. Remove any unwanted attributes
var badAttributes = ['start'];
for (var i = 0; i < badAttributes.length; i++) {
var attributeStripper = new RegExp(' ' + badAttributes[i] + '="(.*?)"', 'gi');
output = output.replace(attributeStripper, '');
}
return output;
}
var tagStripper = new RegExp('<(/)*(meta|link|\\?xml:|st1:|o:|font)(.*?)>', 'gi');
// 5. Remove any unwanted styling
// NOTE: Add your own list of 'blacklisted' css attributes here
var badStyling = ['margin-top:', 'margin-bottom:', 'line-height:', 'mso-fareast-font-family:"', 'font-weight:', 'margin:'];
for (var i = 0; i < badStyling.length; i++) {
attrStripper = new RegExp('(' + badStyling[i] + ')([^;]*)+[^]', 'gm');
output = output.replace(attrStripper, '');
}
var badAttributes = ['start'];