用于限制文本字符串中空格数的正则表达式

Regex to limit the number of spaces in a text string

我正在尝试建立以下但我做不到。我需要在我的文本字符串中完全不允许有空格或最多有 2 个空格。 以下是我的正则表达式:

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

上面的部分工作正常,即在我的文本中允许 1 到最多 2 个空格,但是,当我的文本中根本没有空格时它会失败,尽管我已经定义了 0 到 2。

有什么帮助吗?

如果您不想允许两个以上的连续空格,则使用否定先行断言:

/^(?!.*[ ]{3,}).*$/

如果您想限制总共有两个或更少的空格,请使用:

/^\S*\s?\S*\s?\S*$/

试试这个:

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

[^\s]* 匹配 space 零次或一次。