Validation 如何在groovy中检查属性是否包含空格?

Validation 如何在groovy中检查属性是否包含空格?,validation,grails,groovy,constraints,Validation,Grails,Groovy,Constraints,我是grails新手,在如何编写类的一个属性的适当约束方面遇到了问题。我想检查输入是否包含空格(“”)。这是我的密码 static constraints = { username nullable: false, blank: false, minSize: 6, matches: /[A-za-z0-9_]{6,}/, validator: { Account.countByUsername(it) < 1 } 静态约束={ 用户

我是grails新手,在如何编写类的一个属性的适当约束方面遇到了问题。我想检查输入是否包含空格(“”)。这是我的密码

static constraints = {    

username nullable: false, blank: false, minSize: 6, matches: /[A-za-z0-9_]{6,}/, validator: { 
           Account.countByUsername(it) < 1  
        }
静态约束={
用户名nullable:false,blank:false,minSize:6,匹配项:/[A-za-z0-9\]{6,}/,验证器:{
Account.countByUsername(it)<1
}
请帮帮我


谢谢!

您可能希望使用如下自定义验证器:

username validator: { val -> if (val.contains(' ')) return 'value.hasASpace' }

编辑:正如R.Valbuena指出的,您需要将
countByUsername()
验证器更改为
唯一的:true

除了自定义验证器之外,您还可以使用
匹配项来确保只使用有效字符

看起来您在最初的问题中使用了这个,并且您使用的正则表达式不允许有空格,因此带有空格的用户名应该无法通过验证程序


如果你想在某人有空格(而不是其他无效字符)的情况下给他发送一条特殊消息,那么doelleri的回答是正确的。

非常感谢你,但一旦我将其添加到上面发布的代码中,我就会收到一条关于Account.countByUsername(it)的错误消息<1,是否有任何方法可以在不更改帐户的情况下添加给定的验证器。countByUsername(it)<1?对于username,您可能希望将该约束定义为username(unique:true)而不是数数query@R.Valbuena是正确的。您的countByUsername验证程序在任何更新时都会导致验证失败。使用unique:true是一种方法。仅供参考,如果您需要自定义验证程序来验证两个条件,您的验证程序只需检查这两个条件是否为真。非常感谢您的回答!它们确实是真是帮了大忙!非常感谢!