J'utilise une fonction extrêmement moche dans jQuery pour écouter sur un événement paste
et supprimer toute mise en forme HTML étrangère de la pâte. Malheureusement, ce que j'ai maintenant est trop strict, en plus d'être juste moche.jQuery Regex pour extraire tout le HTML sauf br, gras, italique, et
Je souhaite améliorer cette expression régulière pour permettre le même HTML que celui que j'autorise déjà dans l'éditeur WYSIWYG. Cela signifie que je voudrais avoir <b>
, <i>
, <br>
, et <a>
tags autorisés.
Je ne connais pas assez regex pour le faire moi-même, et je serais très reconnaissant de voir cela amélioré.
$('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);
});
});
Vous pouvez voir ce code laid à l'œuvre: http://jsfiddle.net/v4LhV/3/
Voici une discussion assez [populaire] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) sur le sujet .. (* le l'essentiel de l'être - vous ne pouvez pas analyser (x) html avec regex *) –
Excellent commentaire. Cela devrait vraiment être affiché comme une réponse, cependant. –