jQuery - 如何将<br>
和<br />
以及<p />
转换为新行?
jQuery是否具有内置br2nl()
功能 - 这是用于将新行标记转换为用户友好的文本字段版本。
答案 0 :(得分:14)
你可以创建一个这样的函数:
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();
答案 1 :(得分:4)
如果您想获取一大块html并用换行符替换
标签和自动关闭标签,请执行以下操作:
$('#element-containing-html-to-replace').html().replace(/(<br>)|(<p><\/p>)/g, "\n");
应返回容器HTML的字符串,并将这些标记替换为换行符。
答案 2 :(得分:2)
我不知道,但您可以使用"\r\n"
;
编辑:
致@sAc的积分,但更新为实际取代价值&amp;更好的正则表达式:
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();
答案 3 :(得分:2)
如果要替换html元素本身,可以使用此代码:
$('body').find('br').replaceWith("\n");
$('body').find('p').each(function() {
$(this).replaceWith("\n" + $(this).text() + "\n");
});