如果不重复特定时间匹配正则表达式

时间:2015-04-18 15:57:33

标签: javascript regex

标题可能没什么意义,所以让我说清楚:

我想要捕捉不重复一次或三次的空格字符。并且不用任何东西替换它们。

例如,这个;

'the quick brown   fox jumps      over  the   lazy dog'

会成为这个;

'the quick brown   fox jumps over the lazy dog'

目前我用split字符串三个空格,然后用一个空格清理空索引。

2 个答案:

答案 0 :(得分:3)

匹配2个空格或4个以上的空格,周围有单词边界:

newstr = str.replace(/\b(\s\s|\s{4,})\b/g, ' ');

\b匹配单词边界,这将使\s\s不匹配3个字符序列中的两个空格。

g修饰符使其替换输入字符串中的所有匹配项。

答案 1 :(得分:1)

您可以使用replace

var str = 'the quick brown   fox jumps      over  the   lazy dog';
var res = str.replace(/\b\s{2}\b|\b{4,}\b/g, " ");

正则表达式/ {4,}/i将匹配4个或更多空格。\s{2}匹配2个空格。