正则表达式 - 替换单一的JavaScript多换行符(regex - replace multi

2019-06-25 09:11发布

这是某种形式的JavaScript变量的内容:

    <meta charset="utf-8">

    <title>Some Meep meta, awesome</title>




    <-- some comment here -->
    <meta name="someMeta, yay" content="meep">

</head>

我想,以减少多换行(数目不详),一条线路断线而格式化的其余部分仍然保持。 这应该做javascriptregex

我有一个制表或保持格式的问题。

Answer 1:

试试这个:

text.replace(/\n\s*\n/g, '\n');

这基本上查找在两者之间只有空白两个线路中断。 然后,它取代那些由一个单一的换行符。 由于全局标志g ,这是重复每个可能匹配。

编辑:

是不可能性留下一个双断行,而不是一个单一的

当然,最简单的方法是将单看三个换行和两个替换它们:

text.replace(/\n\s*\n\s*\n/g, '\n\n');

如果你想保持对线(无论何种原因),你也可以做这样的一个空白:

text.replace(/(\n\s*?\n)\s*\n/, '$1');


Answer 2:

myText = myText.replace(/\n{2,}/g, '\n');​​​​​​​

观看演示



Answer 3:

给出下面的(记得要编码HTML实体,如<>和(除了别的以外,很明显) & ):

<pre>
&lt;head&gt;

    &lt;meta charset="utf-8"&gt;

    &lt;title&gt;Some Meep meta, awesome&lt;/title&gt;




    &lt;-- some comment here -->
    &lt;meta name="someMeta, yay" content="meep"&gt;

&lt;/head&gt;
</pre>
<pre>
</pre>​

下面的JavaScript的工作:

var nHTML = document.getElementsByTagName('pre')[0].textContent.replace(/[\r\n]{2,}/g,'\r\n');
document.getElementsByTagName('pre')[1].appendChild(document.createTextNode(nHTML));​

JS提琴演示 。



文章来源: regex - replace multi line breaks with single in javascript