-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>'));
}

此方法假设原始文本是通过某些所见即所得编辑器输入的,因此:

  • 我们不需要检查整个文本是否包含在<p>...</p>
  • </br>你引用的那样没有问题

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

于 2015-07-28T16:02:50.810 回答