<br />
または<br>
を\n
に置き換える正規表現を記述する方法テキストをdivからtextareaに移動しようとしていますが、<br>
をtextareaに表示したくないので、\n
に置き換えます。
var str = document.getElementById('mydiv').innerHTML;
document.getElementById('mytextarea').innerHTML = str.replace(/<br\s*[\/]?>/gi, "\n");
またはjQueryを使用:
var str = $("#mydiv").html();
var regex = /<br\s*[\/]?>/gi;
$("#mydiv").html(str.replace(regex, "\n"));
edit:i
フラグを追加
edit2:br
とslash
の間のすべてに一致する/<br[^>]*>/gi
を使用できます。たとえば、 <br class="clear" />
myString.replace(/<br ?\/?>/g, "\n")
内部HTMLをいじらずにDOMを直接変更する場合の真のjQuery方法:
$( '#text')。find( 'br')。prepend(document.createTextNode( '\ n'))。remove();
要素内に挿入を追加します。before()はここで必要なメソッドです。
$('#text').find('br').before(document.createTextNode('\n')).remove();
コードはすべての<br>要素を見つけ、改行文字を含む生のテキストを挿入してから、<br>要素を削除します。
ここには文字列操作がないため、長いテキストを使用する場合は、これが高速になります。
新しい行を表示するには:
$('#text').css('white-space', 'pre-line');
安くて厄介なものは:
jQuery("#myDiv").html().replace("<br>", "\n").replace("<br />", "\n")
[〜#〜] edit [〜#〜]
jQuery("#myTextArea").val(
jQuery("#myDiv").html()
.replace(/\<br\>/g, "\n")
.replace(/\<br \/\>/g, "\n")
);
必要に応じてjsfiddleも作成しました: http://jsfiddle.net/2D3xx/
JQueryとはまったく関係ありませんが、文字列からパターンをトリミングする場合は、正規表現を使用します。
<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>