鉴于这个可编辑的DIV:
<div contenteditable>
First line
Second line
Third line
Fourth line
</div>
现场演示: http://jsfiddle.net/Mpvyk/1/
注意“第三行”和“第四行”之间的3个空行。我想用一个空行替换那3个空行。
所以,在DIV中,对于所有这种情况:
'\n' (zero or more spaces or tabs) '\n' (zero or more spaces or tabs) '\n' etc.
用一个空行替换它:
`\n\n`
到目前为止我所拥有的:
var text = div.textContent;
text.replace(/ ??? /gm, '\n\n');
div.textContent = text;
正如您所看到的,我不知道如何编写正则表达式来选择那些多个空行的出现。
答案 0 :(得分:2)
首先,我认为你所追求的正则表达式是/\n\s+\n/
:换行符,任意数量的类似空格的字符和另一个换行符。
但是,您还需要保存结果:text = text.replace(...)
。
var div = document.getElementsByTagName('div')[0],
text = div.textContent;
text = text.replace(/\n\s+\n/gm, '\n\n');
div.textContent = text;
答案 1 :(得分:1)
我会选择相当简单的东西:
text.replace(/\n{3,}/gm, '\n\n');
或者,忽略行之间的空格(我认为这是你想要的那个):
text.replace(/(\n\s*){3,}/gm, '\n\n');