用CSS或JS隐藏顺序回车

Hide sequential Carriage Returns with CSS or JS?

本文关键字:顺序 回车 隐藏 JS CSS      更新时间:2023-09-26

我认为这是不可能的,但我还是问了。给定一个<pre>标记与以下内容,无论如何在CSS和/或JS剥离额外的回车,所以它基本上不是四倍间距?

Line 1

Line 2

Line 3

我尝试使用br {display: none},但他们不是html换行符。至于JS,我根据我发现的另一个SO答案尝试了以下内容:

(function () {    
    var nodes = document.getElementsByClassName("longdesc");
    console.log(nodes.length)
    for (var n=0; n<nodes.length; n++) {
            nodes[n].textContent = nodes[n].textContent.replace(/[^'S'r'n]/, "test");
            console.log(nodes[n].textContent);
    }
})();

这似乎消除了所有回车,但只把"TEST"放在第一个实例中。

当有人通过电子邮件回复时,这发生在票务系统中。似乎邮件中的每一个cr/lb都翻了一倍。

使用下面的CSS

pre {
    white-space: nowrap;
}

成功了!

(function () {    
    var nodes = document.getElementsByClassName("longdesc");
    for (var n=0; n<nodes.length; n++) {
        nodes[n].textContent = nodes[n].textContent.replace(/'n{2,}/g, "'r'n'r'n");
    }
})();