基于Groovy的掩码验证咨询:实现10位数字输入校验
正确实现10位数字输入验证的Groovy代码
你的原代码问题在于直接将用户输入与正则表达式字符串做相等判断,这只会在用户输入完全等于"[0-9]{10}"时返回true,完全不符合验证需求。要实现掩码规则[0-9]{10}(即必须是10位数字)的验证,需要使用正则匹配逻辑,以下是两种正确实现方式:
方式一:使用Groovy原生正则匹配操作符
def isInputValid(String userValue) { // ==~ 是Groovy的完全匹配正则操作符,检查整个字符串是否符合10位数字规则 return userValue ==~ /[0-9]{10}/ }
- 测试:输入
"123"返回false,输入"1234567891"返回true
方式二:使用Java正则API(Pattern+Matcher)
import java.util.regex.Pattern def isInputValid(String userValue) { def pattern = Pattern.compile("[0-9]{10}") def matcher = pattern.matcher(userValue) // matches() 方法要求整个输入字符串完全匹配正则表达式 return matcher.matches() }
关键说明
- 必须使用正则匹配逻辑,而非字符串相等判断
==~操作符是Groovy中实现完全正则匹配最简洁的方式- 若需要更复杂的正则处理(比如提取匹配内容),可以选择Pattern+Matcher的方式
内容的提问来源于stack exchange,提问作者Daria Filippova
相关产品推荐
相关产品推荐

