使用者在 <textarea> 輸入多行文字(以換行符分隔),儲存至資料庫或提交表單前,需自動將每一段文字包裹在 <p></p> 標籤中,以利前端顯示排版。
<textarea id="ta"></textarea>
<br />
<input type="button" value="輸入完畢" onclick="replaceText()" />
<script>
function replaceText() {
var v = document.getElementById('ta').value.replace(/\r/g, '');
if (v != '') {
// 移除結尾換行,再以 </p><p> 取代內部換行,最後補上首尾標籤
v = '<p>' + v.replace(/\n*$/g, '').replace(/\n/g, '</p><p>') + '</p>';
alert(v); // 實際專案中可送往後端或顯示於預覽區
}
}
</script>
/\r/g:移除 Windows 風格換行符 \r\n 中的 \r,統一為 \n。/\n*$/g:移除字串尾部多餘的換行,避免產生空段落。/\n/g:將剩餘換行符替換為 </p><p>,形成段落分隔。escapeHtml 處理,防止 XSS。onBlur 或 onChange 即時轉換。