Groovy String被约束为大写

时间:2014-09-24 08:16:07

标签: grails groovy

我正在创建一个存储国家ISO代码和国家/地区名称的域类。

class Country {
   String countryISO
   String countryName
   static constraints = {
      countryISO size:2, unique
   }
}

但我想根据ISO 3166-1 alpha-2标准限制countryISO仅包含大写字母。如何实现?

蒂姆耶茨确实指出,关于如何将其改为大写,存在类似的问题。问题是我真的不想改变它,我想限制它。即,输入非大写代码的任何人都应该收到错误。

2 个答案:

答案 0 :(得分:1)

就像

一样简单
class Country {
   String countryISO
   static constraints = {
      countryISO size:2, unique:true, validator:{ it.toUpperCase() == it }
   }
}

答案 1 :(得分:1)

您可以使用matches constraint检查正则表达式的值:

static constraints = {
  countryISO size:2, unique:true, matches:'[A-Z]{2}'
}