1

我在 jQuery 中使用了一个极其丑陋的函数来监听paste事件并从粘贴中删除所有无关的 HTML 格式。不幸的是,除了丑陋之外,我现在拥有的东西过于严格。

我想改进这个正则表达式以允许我在所见即所得编辑器中已经允许的相同 HTML。这意味着我希望允许<b>, <i>,<br><a>标签。

我自己不知道足够的正则表达式来执行此操作,并且非常感谢看到这种改进。

$('iframe').ready(function() {
  $(this).contents().find('.wysiwyg').find('iframe').contents()
  .find('.wysiwyg').bind('paste', function() {
    var el = $(this);
    setTimeout(function() {
        var strClean = el.text().replace(/<\/?[^>]+>/gi, '');
        el.text(strClean);
    }, 0);
  });
});

你可以在这里看到这个丑陋的代码:http: //jsfiddle.net/v4LhV/3/

4

1 回答 1

2

由于您有一个功能齐全的 DOM 解析器,即手头的浏览器,为什么不使用.html()in 将整个内容解析为一个元素(屏幕外),然后运行删除您不想使用的内容.unwrap()

于 2011-06-02T22:55:04.533 回答