在可疑的DIV中检测多个空行

时间:2011-07-28 18:36:04

标签: javascript regex

鉴于这个可编辑的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;

正如您所看到的,我不知道如何编写正则表达式来选择那些多个空行的出现。

2 个答案:

答案 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;

http://jsfiddle.net/Mpvyk/2/

答案 1 :(得分:1)

我会选择相当简单的东西:

text.replace(/\n{3,}/gm, '\n\n');

或者,忽略行之间的空格(我认为这是你想要的那个):

text.replace(/(\n\s*){3,}/gm, '\n\n');