Bagaimana cara menulis regex untuk menggantikan <br />
atau <br>
dengan \n
. I'm mencoba untuk memindahkan teks dari div untuk textarea, tapi don't ingin <br>
's untuk menunjukkan di textarea, jadi saya ingin mengganti maka dengan \n
.
var str = document.getElementById('mydiv').innerHTML;
document.getElementById('mytextarea').innerHTML = str.replace(/<br\s*[\/]?>/gi, "\n");
atau menggunakan jQuery:
var str = $("#mydiv").html();
var regex = /<br\s*[\/]?>/gi;
$("#mydiv").html(str.replace(regex, "\n"));
[contoh][1]
edit: ditambahkan aku
bendera
edit2: anda dapat menggunakan /<br[^>]*>/gi
yang akan cocok dengan apa-apa antara br
dan miring
jika anda memiliki misalnya <br class="jelas" />
Benar jQuery cara jika anda ingin mengubah langsung DOM tanpa bermain-main dengan inner HTML:
$('#text').find('br').prepend(document.createTextNode('\n')).remove();</strike>
Tambahkan sisipan dalam elemen, sebelum() adalah metode yang kita butuhkan di sini:
$('#text').find('br').before(document.createTextNode('\n')).remove();
Kode akan menemukan <br> unsur-unsur, menyisipkan teks baku dengan karakter baris baru dan kemudian menghapus <br> unsur-unsur.
Ini harus menjadi lebih cepat jika anda bekerja dengan teks yang panjang karena tidak ada operasi string berikut ini.
Untuk menampilkan baris baru:
$('#text').css('white-space', 'pre-line');
murah dan jahat akan sama:
<menyerang>jQuery("#myDiv").html().replace("<br>", "\n").replace("<br />", "\n")
</strike> EDIT
jQuery("#myTextArea").val(
jQuery("#myDiv").html()
.replace(/\<br\>/g, "\n")
.replace(/\<br \/\>/g, "\n")
);
Juga menciptakan jsfiddle jika diperlukan:
Tidak benar-benar apa-apa untuk melakukan dengan jQuery, tetapi jika anda ingin untuk memotong pola dari string, kemudian menggunakan ekspresi reguler:
<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>