如何使用正则表达式用新行替换段落元素?

时间:2012-02-16 10:15:10

标签: javascript jquery regex

我目前正在使用正则表达式将textarea值的新行转换为<p>标记,然后将新格式化的文本块插入页面并且它正常工作。然而,可以重新编辑文本块,即将文本块放回到文本区域以进行编辑。是否有一个正则表达式,我可以用它来再次用新行替换<p>标签,以便在编辑textarea中的文本时保留间距?

(这将与JavaScript / jQuery一起使用)。

2 个答案:

答案 0 :(得分:3)

我建议你利用jQuery的查询来获取每个<p>的内容,然后将它们加入\n

function getTexts(selector) {
  var textContents = $(selector).map(function(i, item) {
    return $(item).text();
  });

  return textContents.join("\n\n");
}

$("#theTextarea").val(getTexts("#someContainer > p"));

答案 1 :(得分:1)

您可以迭代每个p元素,提取文本并使用每个p的文本+换行符来构建字符串,而不是使用正则表达式。

var html = $('<div>' + text + '</div>');
var plain = '';

$(html.find('p')).each(function() {
    plain += '\n' + $(this).text();
});