我有一个包含换行符的字符串(\n
)。
我希望所有\n
前面都有两个空格。
var str = "First line\nSecondd Line \nThirdLine \\n";
str = str.replace(/\n/g, ' \\n')
以上工作但每次保存时都会增加更多空间。
如果已经有两个空格,我怎么能不管呢?
答案 0 :(得分:1)
在换行符之前没有空格时替换:
var str = "First line\nSecondd Line \nThirdLine \\n";
str = str.replace(/(\S)\s{0,2}\n/g, '$1 \\n')
答案 1 :(得分:0)
这个简单的正则表达式就是你所需要的:
/ {0,2}\n/g
基本上,它的工作原理是先前"取代"字符串在每个换行符之前已经有两个空格,因此它也会捕获并替换它们。
var str = "First line\nSeconnd Line \nThirdLine \\n";
str = str.replace(/ {0,2}\n/g, ' \n');
// str === "First line \nSeconnd Line \nThirdLine \\n"
修改强>
抱歉,我之前的假设是您希望换行符被两个空格替换,然后是另一个换行符。
我没有注意到您希望换行转义。
但是,这很容易做到:
replace(/ {0,2}\n/g, ' \\n');
只需转义反斜杠,请参阅较新版本here。