需要Pure/jQuery Javascript解决方案从文本区域清除Word HTML

Use*_*ser 2 html javascript jquery ms-word

我知道这个问题已在这里触及,但我还没有找到适合我情况的可行解决方案,所以我想,但大脑信任回来工作,看看可以做些什么.

我有一个表单中的textarea需要检测何时粘贴到其中,并清除任何隐藏的HTML和引号.这个表单的内容通过电子邮件发送到第三方系统,这是特别讨厌的,所以有时甚至将它编码为html实体字符不是一个安全的赌注.

遗憾的是我不能使用像FCKEditor,TinyMCE等那样的东西,在这种情况下它必须保持常规的textarea.我试图从单词函数中解析FCKEditor的粘贴,但没有运气跟踪它.

然而,如果需要,我可以使用jQuery库,但还没有找到一个jQuery插件.

我专门寻找用于清理粘贴信息的信息,而不是如何监视元素以更改内容.

任何建设性的帮助将不胜感激.

Sha*_*son 8

我正在看David Archer的回答,他几乎都回答了这个问题.我过去曾使用类似于他的解决方案:

$("textarea").change( function() {
    // convert any opening and closing braces to their HTML encoded equivalent.
    var strClean = $(this).val().replace(/</gi, '&lt;').replace(/>/gi, '&gt;');

    // Remove any double and single quotation marks.
    strClean = strClean.replace(/"/gi, '').replace(/'/gi, '');

    // put the data back in.
    $(this).val(strClean);
});
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找一种完全删除HTML标记的方法

$("textarea").change( function() {
    // Completely strips tags.  Taken from Prototype library.
    var strClean = $(this).val().replace(/<\/?[^>]+>/gi, '');

    // Remove any double and single quotation marks.
    strClean = strClean.replace(/"/gi, '').replace(/'/gi, '');

    // put the data back in.
    $(this).val(strClean);
});
Run Code Online (Sandbox Code Playgroud)


Tim*_*ijk 5

您可以查看Connor McKay的Word HTML Cleaner.它是一个相当强大的清洁工,因为它删除了许多你可能想要保留的东西,但如果这不是问题,它看起来相当不错.