我正在尝试编写一种验证方法,该方法将验证是否有人输入了错误的许可证号,我四处搜寻并找到了一些想法,但我只是无法获得想要的结果。正确的格式应该是两个字母后跟七个数字,两个字母和七个数字可能会更改,但示例的格式应保持不变:


  AB1234567


如果用户输入此值,则布尔值将为true(如果输入):


  A12345678或AB12345Y7甚至不匹配正确的长度,例如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;
}

10-04 20:35