[英]regex - replace multi line breaks with single in javascript
这是 javascript 中的某种变量内容:
<meta charset="utf-8">
<title>Some Meep meta, awesome</title>
<-- some comment here -->
<meta name="someMeta, yay" content="meep">
</head>
我想将多换行符(未知数)减少为单个换行符,而其余格式仍然保留。 这应该在带有regex
javascript
完成。
我对制表符有问题或要保留格式。
试试这个:
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));
要替换所有额外的换行符并只留下一种用法:
myText = myText.replace(/\n\n*/g,'\r\n');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.