JS - 如何在 <br> 处拆分文本并放置在 2 <p> 处

JS - How to split text at a <br> and place in 2 <p>'s

我想做的是扫描段落的 innerHTML 并找到换行符的位置,换行符可以在段落标记 < p >>

之间以各种形式出现:

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

并删除它们。但是,在换行符所在的位置,我想使用 document.createElement('p') 将其之前的所有文本放入其自己的段落中,并将其之后的所有文本放入另一个新段落中。

但是,如果有 2 个以上的换行符,中间没有文本,或者只是白色 space,那么 remove/ignore 这个,不要费心将它放在自己的段落中。

这是我的意思的一个例子。以下为改动前:

<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 中完成吗?感谢阅读!

对于第一个简单的答案,试试这个:

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

此方法假设原文是通过一些所见即所得的编辑器输入的,所以:

  • 我们不需要检查整个文本是否包含在 <p>...</p>
  • 你引用的 </br> 之类的东西没关系

相反,如果文本原始输入为 HTML,我们可能会遇到任何问题,因此它需要一个完全不同的解决方案,基于对文本的编程详细分析。