0

我正在寻找一个允许字符串内部不超过 2 个非连续空格的正则表达式。

WORD is ok
WORD WORD is ok
WORD WORD WORD is ok
WORD WORD WORD WORD is not ok

我现在不在乎连续的空格。

4

3 回答 3

3

如果字符串包含两个以上的非连续空格,您可以使用负前瞻来防止匹配

^(?!\S*\s+\S+\s+\S+\s)

或者,一个有效的字符串将匹配

^\S*\s*\S*\s*\S*$
于 2013-03-28T18:33:47.370 回答
0

您可以为此使用反向引用:

/(\b.+\b)\1\1\1/

例如,

/(\b.+\b)\1\1\1/.test('HELLO HELLO HELLO HELLO'); // true

然而,

/(\b.+\b)\1\1\1/.test('HELLO HELLO HELLO'); // false
于 2013-03-28T18:39:45.397 回答
0

你有没有尝试过

^([^ ]+\s+){0,2}[^ ]*$

它假定您在行首没有空间。

于 2013-03-28T18:56:44.883 回答