web-dev-qa-db-fra.com

jQuery javascript regex Remplacer <br> par \ n

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.

60
Pinkie
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"));

exemple

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" />

163
Teneff

myString.replace(/<br ?\/?>/g, "\n")

9
Adam Bergmark

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');
5
Radek Pech

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/

3
James Khoury

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>
2
RobG