【发布时间】:2016-01-13 16:44:04
【问题描述】:
我需要通过允许用户根据此格式 12345-1234567-1 仅输入 cnic 编号来验证 JTextField,我正在使用此正则表达式,但它不起作用。 这是我的功能
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);
}
}
请给我一些指导如何验证我的 jtextfield...谢谢
【问题讨论】:
-
“不工作”它做了什么而不是你期望的?它适用于某些输入吗?
-
从
[0-9+]中删除+,除非您确实需要匹配+。您还可以使用\d(在Java 字符串文字中转义为\\d)来匹配数字。 -
如果用户输入了不匹配的输入,为什么要禁用
idSearch,阻止他们更改它? -
我的意思是当我运行我的项目时我输入了数字但我的 else 部分正在运行而不是 if 部分...请提供一些代码
-
我用这个 12345-1234567-1 输入运行了你的程序,正则表达式工作得很好。对于这个输入,如果我将输入值 123-45-1234567-1 更改为真值,我得到了假值。
标签: java swing jframe jtable jtextfield