RegEx表达式不允许只有空格?

时间:2016-08-08 16:59:53

标签: regex

我有这个regEx表达式,它只允许空格,字母和短划线。我想修改它,所以它也不允许只有空格。有人能帮助我吗?

/^([A-zăâîșțĂÂÎȘȚ-\s])+$/

1 个答案:

答案 0 :(得分:2)

您可以使用否定前瞻来限制此通用模式:

/^(?!\s+$)[A-Za-zăâîșțĂÂÎȘȚ\s-]+$/
  ^^^^^^^^

请参阅regex demo

(?!\s+$)预测在最开始执行一次,如果有一个或多个空格直到字符串结尾,则返回false。

此外,您的正则表达式包含[A-z]的经典问题,其匹配的不仅仅是ASCII字母,您需要将其替换为[A-Za-z](或仅[a-z]并使用{{1}不区分大小写的修饰符)。

此外,字符类中的/i通常放在最后,以免转义它,并且它将被解析为文字连字符(但是,如果另一个开发人员将要解析,你可能想要转义它必须通过向字符类添加更多符号来更新此模式。)

以防这是一个不支持外观的正则表达式引擎:

-

它要求允许的集合中至少有1个非空格字符(也匹配1个强制符号)。

Another regex demo