jQuery - 将<br/>和/和<p>等转换为新行</p>

时间:2010-08-01 08:38:18

标签: jquery newline

jQuery - 如何将<br><br />以及<p />转换为新行?

jQuery是否具有内置br2nl()功能 - 这是用于将新行标记转换为用户友好的文本字段版本。

4 个答案:

答案 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");
});