我想实现巴基斯坦的cnic数字标准格式,如下所示:12345-1234567-1
。
但我对此一无所知。我为此找到了以下代码,但它也在NetBeans中出错。
private void idSearchKeyPressed(java.awt.event.KeyEvent evt) {
String cnicValidator = idSearch.getText();
if (cnicValidator.matches("^[0-9+]{5}-[0-9+]{7}-[0-9]{1}$")) {
idSearch.setEditable(true);
}
else {
idSearch.setEditable(false);
}
}
答案 0 :(得分:0)
模式是正确的。但它可以浓缩到这个:
^[\\d]{5}-[\\d]{7}-\\d$
idSearch
来自哪里?如果它不是该类的最终成员,则无法以这种方式访问它。因此,请确保idSearch
内可以使用idSearchKeyPressed
。还要确保没有尾随空格或类似的东西。你可以通过调用
cnicValidator = cnicValidator.trim();
以下示例为两个正则表达式版本返回true
。
public static void main(String... args){
String id = "35241-7236284-4";
System.out.println(id.matches("^[\\d]{5}-[\\d]{7}-\\d$"));
System.out.println(id.matches("^[0-9+]{5}-[0-9+]{7}-[0-9]{1}$"));
}