Comment puis-je écrire une regex pour remplacer <br />
ou <br>
avec \n
. J'essaie de déplacer le texte de div en textarea, mais je ne veux pas <br>
's à afficher dans la zone de texte, je souhaite donc le remplacer par \n
.
var str = document.getElementById('mydiv').innerHTML;
document.getElementById('mytextarea').innerHTML = str.replace(/<br\s*[\/]?>/gi, "\n");
ou en utilisant jQuery:
var str = $("#mydiv").html();
var regex = /<br\s*[\/]?>/gi;
$("#mydiv").html(str.replace(regex, "\n"));
edit: ajouté i
flag
edit2: vous pouvez utiliser /<br[^>]*>/gi
qui correspondra à tout ce qui se situe entre br
et slash
si vous avez par exemple <br class="clear" />
myString.replace(/<br ?\/?>/g, "\n")
Véritable façon jQuery si vous voulez changer directement le DOM sans jouer avec le HTML interne:
$ ('# text'). find ('br'). prepend (document.createTextNode ('\ n')). remove ();
Les insertions de préfixe à l'intérieur de l'élément, before () est la méthode dont nous avons besoin ici:
$('#text').find('br').before(document.createTextNode('\n')).remove();
Le code trouvera tous les éléments <br>, insérera du texte brut avec un nouveau caractère de ligne, puis supprimera les éléments <br>.
Cela devrait être plus rapide si vous travaillez avec des textes longs car il n'y a pas d'opération de chaîne ici.
Pour afficher les nouvelles lignes:
$('#text').css('white-space', 'pre-line');
un pas cher et méchant serait:
jQuery("#myDiv").html().replace("<br>", "\n").replace("<br />", "\n")
[~ # ~] éditer [~ # ~]
jQuery("#myTextArea").val(
jQuery("#myDiv").html()
.replace(/\<br\>/g, "\n")
.replace(/\<br \/\>/g, "\n")
);
Également créé un jsfiddle si nécessaire: http://jsfiddle.net/2D3xx/
Pas vraiment quelque chose à voir avec jQuery, mais si vous voulez couper un motif à partir d'une chaîne, utilisez une expression régulière:
<textarea id="ta0"></textarea>
<button onclick="
var ta = document.getElementById('ta0');
var text = 'some<br>text<br />to<br/>replace';
var re = /<br *\/?>/gi;
ta.value = text.replace(re, '\n');
">Add stuff to text area</button>