首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式如果超过两行,则为两行,否则为一行

正则表达式如果超过两行,则为两行,否则为一行
EN

Stack Overflow用户
提问于 2021-03-21 17:23:21
回答 1查看 49关注 0票数 0

代码语言:javascript
复制
var y = document.querySelectorAll("pre code");
for(var i = 0; i < y.length; i++) {
  y[i].innerHTML = y[i].innerHTML.replace("\n", "");
}
代码语言:javascript
复制
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Testing HighlightJS</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.6.0/styles/routeros.min.css">
</head>
<body>
    <h3>Testing HighlightJS</h3>
    <h4>CSS</h4>
    <pre><code class="language-css">
    .class{
    font-size: 0.85rem;
    font-weight: 600;
    font-family: monospace;
    }
    
    h1 .header{
    font-size: 1.5rem;;
    font-family: Arial;
    }
    </code></pre>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.6.0/highlight.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.6.0/languages/css.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.6.0/highlightjs-line-numbers.min.js"></script>
    <script>hljs.highlightAll(); hljs.initLineNumbersOnLoad();</script>
</body>
</html>

这可能是微不足道的,但我无法找到或解决。

如果超过两个换行,则换两个换行,否则换一行。

我可以写的是:

代码语言:javascript
复制
.replace(\[\r\n]{2, } ? \n\n, "\n\n ? \n")

但这给出了错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-21 17:28:23

您可以匹配3个或更多换行符,并替换为2个换行符,或者使用替换匹配2个换行符并将其替换为1个换行符。

代码语言:javascript
复制
((?:\r?\n){3,})|(?:\r?\n){2}

Regex demo

代码语言:javascript
复制
let str = `test1



test2
test3

test4`;

str = str.replace(/((?:\r?\n){3,})|(?:\r?\n){2}/g, (_, g1) => g1 ? "\n\n" : "\n");
console.log(str);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66730669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档