如何验证 jtextfield 只接受巴基斯坦 cnic 格式?
How to validate a jtextfield to accept only pakistan cnic format?
我需要通过允许用户根据此格式 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 的指导...谢谢
验证 post 输入的另一种解决方案是使用 JFormattedTextField
combined with a MaskFormatter
来限制输入的开头。
创建其中之一的代码类似于:
import java.text.ParseException;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.text.MaskFormatter;
public class Demo {
public static void main(String[] args){
final JFrame frame = new JFrame("Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final MaskFormatter mask;
try {
mask = new MaskFormatter("#####-#######-#");
} catch (ParseException e) {
throw new RuntimeException("Invalid format mask specified", e);
}
// You can optionally set a placeholder character by doing the following:
mask.setPlaceholderCharacter('_');
final JFormattedTextField formattedField = new JFormattedTextField(mask);
frame.setSize(100, 100);
frame.add(formattedField);
frame.setVisible(true);
}
}
格式掩码#
只接受数字(具体来说,它接受Character.isDigit(char)
returns true
的任何字符),并禁止输入任何非数字.
我需要通过允许用户根据此格式 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 的指导...谢谢
验证 post 输入的另一种解决方案是使用 JFormattedTextField
combined with a MaskFormatter
来限制输入的开头。
创建其中之一的代码类似于:
import java.text.ParseException;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.text.MaskFormatter;
public class Demo {
public static void main(String[] args){
final JFrame frame = new JFrame("Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final MaskFormatter mask;
try {
mask = new MaskFormatter("#####-#######-#");
} catch (ParseException e) {
throw new RuntimeException("Invalid format mask specified", e);
}
// You can optionally set a placeholder character by doing the following:
mask.setPlaceholderCharacter('_');
final JFormattedTextField formattedField = new JFormattedTextField(mask);
frame.setSize(100, 100);
frame.add(formattedField);
frame.setVisible(true);
}
}
格式掩码#
只接受数字(具体来说,它接受Character.isDigit(char)
returns true
的任何字符),并禁止输入任何非数字.