-1

私がやりたいのは、段落の innerHTML をスキャンして、段落タグ < p >< /p > の間のさまざまな形式の改行の場所を見つけることです。

<br>, <br />, or <br></br>

それらを削除します。しかし、改行があった場所では、その前のすべてのテキストを document.createElement('p') を使用して独自の段落に配置し、その後のすべてのテキストを別の新しい段落に配置したいと考えています。

ただし、途中にテキストがない、または空白だけの 2 つ以上の改行がある場合は、これを削除または無視し、わざわざこれを独自の段落に配置しないでください。

これが私の言いたいことの例です。以下、変更前です。

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus convallis nisi sem, id gravida felis suscipit at. Sed ipsum felis, posuere ut turpis at, faucibus tempor dui. Nunc gravida sapien id velit vestibulum euismod.
<br />
<br />
Praesent vehicula rhoncus bibendum. Aenean tempus maximus aliquam. Nulla facilisi. Maecenas justo felis, faucibus ut posuere eget, fringilla et arcu. Sed ut pellentesque leo, a tincidunt tellus.</p>

そして、これは私がそれを変更したいものです:

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus convallis nisi sem, id gravida felis suscipit at. Sed ipsum felis, posuere ut turpis at, faucibus tempor dui. Nunc gravida sapien id velit vestibulum euismod.</p>

<p>Praesent vehicula rhoncus bibendum. Aenean tempus maximus aliquam. Nulla facilisi. Maecenas justo felis, faucibus ut posuere eget, fringilla et arcu. Sed ut pellentesque leo, a tincidunt tellus.</p>

これはJavascriptで行うことができますか? 読んでくれてありがとう!

4

1 に答える 1

2

最初の簡単な答えとして、これを試してください:

s = prompt('Input HTML text example', '<p>...your text here...</p>');
if(!!s) {
  console.log(s.replace(/(<br ?\/?>)+/ig, '</p><p>'));
}

このメソッドは、元のテキストが WYSIWYG エディターを介して入力されることを前提としているため、次のようになります。

  • テキスト全体がラップされているかどうかを確認する必要はありません<p>...</p>
  • </br>あなたが引用したようなもので問題はありません

反対に、テキストが生のまま HTML として入力された場合、実際には何にでも遭遇する可能性があるため、テキストのプログラムによる詳細な分析に基づいた、まったく異なるソリューションが必要になります。

于 2015-07-28T16:02:50.810 に答える