【问题标题】:Regex to limit the number of spaces in a text string正则表达式限制文本字符串中的空格数
【发布时间】:2019-10-08 11:55:46
【问题描述】:

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

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

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

有什么帮助吗?

【问题讨论】:

  • 您想限制 total 两个或更少的空格,还是只允许两个或更少的空格在一起?
  • 应该写成^(?:\S*\s){0,2}\S*$^\S*(?:\s\S*){0,2}$。另外,你能解释一下你在哪里使用正则表达式吗?

标签: regex spaces


【解决方案1】:

试试这个:

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

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

【讨论】:

  • 太棒了..工作得很好。谢谢。
  • 它确实做到了兄弟.. 但它不允许我还没有投票.. 说要等 5 分钟。 5 分钟后马上就可以了。
  • 现在通过了。谢谢
  • 你可以用\S代替[^\s],前者更容易阅读。
【解决方案2】:

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

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

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

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

【讨论】:

  • 第一个正则表达式缺少)?
猜你喜欢
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多