我尝试对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/

10-13 03:39