我是grails的新手,我遇到了如何编写我班级其中一个属性的正确约束的问题。我想检查输入是否包含空格('')。这是我的代码..
static constraints = {
username nullable: false, blank: false, minSize: 6, matches: /[A-za-z0-9_]{6,}/, validator: {
Account.countByUsername(it) < 1
}
请帮帮我。
谢谢!
答案 0 :(得分:1)
您可能希望使用自定义验证器,如:
username validator: { val -> if (val.contains(' ')) return 'value.hasASpace' }
编辑:正如R. Valbuena指出的那样,您需要将countByUsername()
验证工具更改为unique: true
。
答案 1 :(得分:1)
除自定义验证程序外,您还可以使用matches
validator确保仅使用有效字符。
看起来你在原始问题中使用了这个,而你正在使用的正则表达式不允许使用空格,因此带有空格的用户名应该使该验证器失败。
如果你想给某人一个特殊的信息,如果他们有空格(而不是其他一些无效的人物),那么doelleri的回答是正确的方法。