javascript 使用正则表达式检测字符串是否包含两个换行符

k7fdbhmy  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(260)

我在一个html页面中有一些文本,这些文本是从一个mysql查询中生成的,并且包含了换行符。我可以使用<pre>标签来显示HTML中的换行符。这使得文本可以显示每一段,而不需要使用<p>标签。
现在我想通过编程(使用javascript)在第一段周围放置一个轮廓来强调它,为了做到这一点,我需要将第一段放在一个<div>中。
我可以通过以下方法获得文本的字符串

var preElement = document.querySelector("pre");
var text = preElement.innerHTML;

如何使用regex来检测第一段中有两个换行符的地方,以便将其放入<div>元素中?

jv2fixgn

jv2fixgn1#

不确定(因为在问题中缺失)输入和所需输出是什么,但是
.replace()与以下正则表达式配合使用,该正则表达式捕获匹配组并将其插入到DIV中:

const elPre = document.querySelector("pre");
elPre.innerHTML = elPre.textContent.replace(/^([^\n\n]+)/, "<div>$1</div>");
pre div { background: gold; padding: 1rem; }
<pre id="test">Lorem ipsum dolor sit amet

consectetur adipisicing elit. Reprehenderit ullam vitae, quisquam molestias.

Fugit eaque officiis aspernatur voluptatum, rem quod minus temporibus
inventore obcaecati repellat nostrum tenetur blanditiis veniam.</pre>

或者,下面是使用拆分和连接的示例
一个一个三个一个一个一个一个一个四个一个一个一个一个一个五个一个

lhcgjxsq

lhcgjxsq2#

你不需要正则表达式--你可以简单地用你的结束标记</div>来替换换行符。也就是说,我认为这是一个非常奇怪的页面布局方法,我怀疑这真的是你应该做的。

var preElement = document.querySelector("pre");
var html = '<div>' + preElement.innerHTML.replace("\n\n", "</div>");
preElement.innerHTML = html;
div {
  border: 1px solid #ccc;
  padding: 5px;
  background: #ddd;
}
<pre>Sed ut perspiciatis unde omnis

iste natus error sit voluptatem accusantium doloremque laudantium
</pre>

相关问题