JS -如何分割文本<br>并放置在2 <p>'s

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

本文关键字:br 分割文本 JS      更新时间:2023-09-26

我想做的是扫描段落的innerHTML并找到在段落标签之间可以以各种形式出现的换行符

& lt;/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中实现?感谢您的阅读!

第一个简单的答案是:

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形式输入,我们可能会遇到任何问题,因此它需要一个完全不同的解决方案,基于对文本的编程详细分析。