这是某种形式的JavaScript变量的内容:
<meta charset="utf-8">
<title>Some Meep meta, awesome</title>
<-- some comment here -->
<meta name="someMeta, yay" content="meep">
</head>
我想,以减少多换行(数目不详),一条线路断线而格式化的其余部分仍然保持。 这应该做javascript
用regex
。
我有一个制表或保持格式的问题。
试试这个:
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');
myText = myText.replace(/\n{2,}/g, '\n');
观看演示
给出下面的(记得要编码HTML实体,如<
, >
和(除了别的以外,很明显) &
):
<pre>
<head>
<meta charset="utf-8">
<title>Some Meep meta, awesome</title>
<-- some comment here -->
<meta name="someMeta, yay" content="meep">
</head>
</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提琴演示 。