我尝试对NRIC进行验证。仅当第一个和最后一个字符为字母且NRIC的长度为9时有效。例如,S1234567G。
当用户输入错误的格式时,例如S123D和S12345678G,会弹出错误的格式信息。这是我的代码。
boolean isLetter = true;
} else if (nric.equals("")) {
JOptionPane.showMessageDialog(null, "Please enter NRIC");
} else if (isLetter == false) {
for (int count = 0; count < nric.length(); count++) {
char i = nric.charAt(count);
if ((i != 9) && (!Character.isLetter(nric.charAt(0)))
&& (!Character.isLetter(nric.length() - 1)))
isLetter = false;
}
if (isLetter == false) {
JOptionPane.showMessageDialog(null, "NRIC wrong format");
}
这不是完整的代码。我还对其他文本字段进行了其他验证。因为我知道这里有一些错误,所以我仅将NRIC部分分开。
无论输入什么,它将在我的数据库中创建一条记录。即使格式错误,它也不会显示错误消息。有人可以帮我检查吗?提前致谢。
最佳答案
我认为这意味着任何类型的大写ASCII字母,而不是字面意义上的任何种类的字母,例如会传递த
的Character.isLetter
。
然后使用[A-Z][0-9]{7}[A-Z]
这样的正则表达式最简单
关于java - NRIC验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14001980/