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