Validation 如何在groovy中检查属性是否包含空格?
我是grails新手,在如何编写类的一个属性的适当约束方面遇到了问题。我想检查输入是否包含空格(“”)。这是我的密码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 } 静态约束={ 用户
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是一种方法。仅供参考,如果您需要自定义验证程序来验证两个条件,您的验证程序只需检查这两个条件是否为真。非常感谢您的回答!它们确实是真是帮了大忙!非常感谢!