【问题标题】:Regex / javax.validation help -- verifying non-whitespace present -- Java正则表达式 / javax.validation 帮助 -- 验证非空白存在 -- Java
【发布时间】:2011-03-17 00:41:01
【问题描述】:

我正在尝试在将某些字段保存到数据库之前对其进行验证。特别是,我需要知道 String 包含非空白字符。

我使用的是javax.validation.constraints.Pattern注解,如下:

@Pattern(regexp = "[^\\s]")
private String field;

这似乎会在每个字符串上抛出 ConstraintViolation。我错过了什么?

【问题讨论】:

    标签: java regex validation


    【解决方案1】:

    \S(或其等效的[^\s])应该根据文档工作。你认为它会自动设置"^" + expr + "$"吗?根据文档它不应该,但也许尝试.*\S.*

    (根据我的评论——认为这个答案完全是在黑暗中拍摄的;很幸运。那些文档可以使用一些修改......)

    【讨论】:

      【解决方案2】:

      我认为你需要"[\\s]+"+ 确保出现一个或多个此类字符。


      编辑:如果我重新阅读该问题,我想知道您是否输入了诸如“A dog runs”之类的字符串并且它会中断,因为有非空白字符,但也有空白字符。试试这个:

      ((\\s+)?([^\\s]))+
      

      最后一件事:不知道为什么你有一个private void field——那应该是一个String吗?

      【讨论】:

      • 似乎有道理,但不,这不会改变任何事情。
      • \S(或其等效的[^\s])应该根据文档工作。你认为它会自动设置"^" + expr + "$"吗?根据文档不应该,但也许尝试.*\S.*
      • @Ian - 就是这样。作为答案发布,我会投票并接受。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      相关资源
      最近更新 更多