テキストのブロックを次のようにフォーマットする CMS を扱っています。
<p id="V01-cntntTxt">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br>
Vivamus lacus ipsum, semper non consequat eu, facilisis at lectus. Vestibulum et magna ac<br>
odio semper porttitor lacinia congue orci. Vivamus suscipit eleifend dolor、hendrerit<br>
turpis bibendum ut.<br><br>
Morbi interdum augue et nisl ullamcorper sit amet ornare<br>
lorem tempus. Duis nec nisi quis ipsum pulvinar volutpat. Suspendisse venenatis malesuada metus、
nec pretium dui cursus eget。Donec vitae lorem vitae risus dapibus malesuada congue vel nunc.</p>
この CMS を使用している会社は、SHIFT+Enter x 2 を使用して段落の区切りを示し、単一の Shift+Enter を改行として使用することを標準的な方法にしています。CMS の動作にパッチを適用したり、変更したりすることができません。
これは望ましい結果です:
<p id="V01-cntntTxt">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacus ipsum, semper non consequat eu, facilisis at lectus. Vestibulum et magna ac odio semper porttitor lacinia congue orci. Vivamus suscipit eleifend dolor、hendrerit turpis bibendum ut.</p><p>
Morbi interdum augue et nisl ullamcorper sit amet ornare lorem tempus. Duis nec nisi quis ipsum pulvinar volutpat. Suspendisse venenatis malesuada metus、nec pretium dui cursus eget。Donec vitae lorem vitae risus dapibus malesuada congue vel nunc.</p>
<br><br>
二重タグを終了タグと開始タグに置き換えて段落区切りを維持し、残りの改行用</p><p>
の単一タグをすべて削除する必要があります。<br>
私はこれを試しましたが、ほとんど動作します:
<script>
$('#V01-cntntTxt').html($('#V01-cntntTxt').html().replace(/<br><br>/g, '</p>'));
$('#V01-cntntTxt').html($('#V01-cntntTxt').html().replace(/<br>/g, ' '));
</script>
ただし、結果は空の段落になります。</p></p>
真ん中の2つのタグが逆です。であってはなり</p><p>
ません<p></p>
。挿入するように指定していないのに、開始タグが挿入されているようです。
これは、タグを逆にした上記のスクリプトの結果です。
<p id="V01-cntntTxt">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacus ipsum, semper non consequat eu, facilisis at lectus. Vestibulum et magna ac odio semper porttitor lacinia congue orci. Vivamus suscipit eleifend dolor、hendrerit turpis bibendum ut.<p></p>
Morbi interdum augue et nisl ullamcorper sit amet ornare lorem tempus. Duis nec nisi quis ipsum pulvinar volutpat. Suspendisse venenatis malesuada metus、nec pretium dui cursus eget。Donec vitae lorem vitae risus dapibus malesuada congue vel nunc.</p>