Подтвердить что ты не робот

JQuery javascript regex Заменить <br> с помощью\n

Как написать регулярное выражение для замены <br /> или <br> на \n. Я пытаюсь переместить текст из div в textarea, но не хочу, чтобы <br> отображался в текстовом поле, поэтому я хочу заменить его на \n.

4b9b3361

Ответ 1

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

пример

изменить: добавлен флаг i

edit2: вы можете использовать /<br[^>]*>/gi, который будет соответствовать чему-либо между br и slash, если у вас есть, например, <br class="clear" />

Ответ 2

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

Ответ 3

дешево и противно было бы:

jQuery("#myDiv").html().replace("<br>", "\n").replace("<br />", "\n")

Забастовкa > ИЗМЕНИТЬ

jQuery("#myTextArea").val(
    jQuery("#myDiv").html()
        .replace(/\<br\>/g, "\n")
        .replace(/\<br \/\>/g, "\n")
);

Также при необходимости создается jsfiddle: http://jsfiddle.net/2D3xx/

Ответ 4

Истинный путь jQuery, если вы хотите напрямую изменить DOM без использования внутреннего HTML:

.

$( '# текст') найти ( 'ш') PREPEND (document.createTextNode( '\ п')) удалить();..Забастовкa >

Подготовьте вставки внутри элемента, прежде чем() - это метод, который нам нужен здесь:

$('#text').find('br').before(document.createTextNode('\n')).remove();

Код найдет любую <br> элементы, вставить исходный текст с новым символом строки, а затем удалить <br> элементы.

Это должно быть быстрее, если вы работаете с длинными текстами, поскольку здесь нет строковых операций.

Чтобы отобразить новые строки:

$('#text').css('white-space', 'pre-line');

Ответ 5

Не похоже на 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>