Как мне написать регулярное выражение, чтобы заменить <БР /> " или " <БР>
С \П
. Я'м пытаясь переместить текст из div в текстовой области, но Дон'т хотите, <БР>
's, чтобы показать в textarea, так что я хочу заменить потом с \п
.
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"));
[Пример][1]
редактировать: добавлена я
флаг
edit2: вы можете использовать /<БР[^>]*>/ги
, который будет соответствовать что-нибудь между БР
и Слэш
если у вас например <БР класс="не понятно" и />
mystring совсем.заменить(/<БР ?\/?>/г, что "\Н-то")
Правда в jQuery, если вы хотите изменить прямо в дом, не трогая внутренний HTML-код:
$('#text').find('br').prepend(document.createTextNode('\n')).remove();
Добавить пластин внутри элемента, прежде чем () - это метод, нам нужно здесь:
$('#text').find('br').before(document.createTextNode('\n')).remove();
Код найдете любой &ЛТ;БР&ГТ; элементы, вставить обычный текст с новой строки, а потом удалить &ЛТ;БР&ГТ; элементы.
Это должно быть быстрее, если вы работаете с длинными текстами, так как нет никаких строковых операций здесь.
Для отображения новых строк:
$('#text').css('white-space', 'pre-line');
а дешево и сердито будет: <удар>
jQuery("#myDiv").html().replace("<br>", "\n").replace("<br />", "\n")
</удара> Редактировать
jQuery("#myTextArea").val(
jQuery("#myDiv").html()
.replace(/\<br\>/g, "\n")
.replace(/\<br \/\>/g, "\n")
);
Также создал jsfiddle, если необходимо:
На самом деле не иметь ничего общего с 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>