我正在尝试编写一个验证方法,该方法将验证是否有人错误地输入了许可证号,我四处搜索并找到了一些想法,但我只是无法得到我想要的结果。正确的格式应该是两个字母后跟七个数字,两个字母和七个数字可以更改,但格式应保持不变,例如:
AB1234567
如果用户输入此值,则 boolean 值将为 true,如果他们输入:
A12345678 or AB12345Y7 or even not matching the correct length such as AB10
然后它会返回 false,我尝试过的代码如下,感谢任何帮助或插入正确的方向。
public boolean validateLicense()
{
boolean retValue = false;
if ((this.licenseNumber.matches("[a-zA-Z]{2}\\d{6}")))
retValue = true;
return retValue;
}
最佳答案
第一件事是你说的是七个数字,但在正则表达式中,有 d{6}。第二件事是,如果你将其更改为: [a-zA-Z]{2}\d{7} 它也会匹配该字符串: kjasd;lkfjAB1234567jklsdfa。 你的正则表达式需要是: ^[a-zA-Z]{2}\d{7}$
<小时/>^ - 字符串的开头 $ - 字符串结尾
代码:
public boolean validateLicense()
{
boolean retValue = false;
if ((this.licenseNumber.matches("^[a-zA-Z]{2}\\d{7}$")))
retValue = true;
return retValue;
}
关于java - 验证文本字符串是否与 java 中预先确定的格式相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41774305/