jQuery - Как Вы преобразовываете <br>
и <br />
и <p />
и такой к новой строке?
Делает jQuery, имеют встроенный br2nl()
функция - это для преобразования тегов новых строк к удобным для пользователя версиям текстового поля.
Вы можете создать такую функцию:
jQuery.fn.nl2br = function(){
return this.each(function(){
jQuery(this).val().replace(/(<br>)|(<br \/>)|(<p>)|(<\/p>)/g, "\r\n");
});
};
И использовать ее любым из следующих способов:
$(':input').nl2br();
$('textarea').nl2br();
$('#textarea_id').nl2br();
Если вы хотите взять кусок html и заменить
теги и самозакрывающиеся теги символами новой строки, то, сделав что-то вроде:
$('#element-containing-html-to-replace').html().replace(/(<br>)|(<p><\/p>)/g, "\n");
нужно вернуть строку HTML контейнера с этими тегами, замененными символами новой строки.
Вы можете использовать этот код, если хотите заменить сами html-элементы:
$('body').find('br').replaceWith("\n");
$('body').find('p').each(function() {
$(this).replaceWith("\n" + $(this).text() + "\n");
});
Не знаю, но вы можете использовать "\ r \ n"
;
РЕДАКТИРОВАТЬ:
Кредиты для @sAc, но обновлены для фактической замены значения и лучшего регулярного выражения:
jQuery.fn.nl2br = function(){
return this.each(function(){
var that = jQuery(this);
that.val(that.val().replace(/(<br\s*\/?>)|(<p><\/p>)/gi, "\r\n"));
});
};
jQuery("textarea").nl2br();