2012-02-16 23 views
2

我正在使用一個正則表達式來將textarea值的新行轉換爲<p>標記,然後將這個新格式化的文本塊插入到頁面上,並且工作正常。文本塊可以重新編輯,即將文本塊放回到textarea進行編輯。有沒有一個正則表達式,我可以用它來再次替換<p>標籤,以便在編輯textarea內的文本時保留間距?如何使用正則表達式替換帶有新行的段落元素?

(這是與JavaScript/jQuery一起使用)。

回答

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")); 
+0

謝謝,有一個額外的行這個偉大的工作:) – Kerry 2012-02-16 11:30:40

1

而不是使用正則表達式,你可以遍歷每個p元素,提取文本並建立一個字符串與每個p的文本+換行符。

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

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