匹配字符串的最后一个字符失败

时间:2015-06-22 17:20:12

标签: regex grails groovy matcher

我无法理解为什么这个非常简单的正则表达式令人心烦意乱:

"213213" ==~ /^\d+/ 
"213213dsadasd" ==~ /^\d+/ 

我希望val只是一串数字。以下返回true:

    static constraints = {
       intValue validator: {val,obj ->

        if(val){
            "${val}" ==~ /^[0-9]*$/ 
        }     
       }
    }

这些是域对象中字段验证的一部分。这是完整的代码:

{{1}}

以上示例将接受“321a31”或“321aa”...不确定正则表达式是错还是其他内容已关闭......

intValue是一个Integer,虽然默认验证会接受像'32112dsa'这样的字符串(并且只存储数字部分),这就是我尝试创建自定义验证器的原因。

1 个答案:

答案 0 :(得分:0)

正则表达式没有任何区别的原因是到达域对象字段的值已经自动解析。可以在此答案中找到解决方法:Grails GORM integer validation