我想验证联系人没有文本字段以检查它是否包含数字。 我已经为KeyTyped编写了以下函数,但它没有用,任何人都可以提供替代方法。谢谢。
代码: -
private void tnoKeyTyped(java.awt.event.KeyEvent evt)
{
char c=evt.getKeyChar();
System.out.println("hi");
if(!(Character.isDigit(c)||(c==KeyEvent.VK_BACK_SPACE)||(c==KeyEvent.VK_DELETE)))
{
evt.consume();
}
}
答案 0 :(得分:1)
我想验证联系人没有文本字段以检查它是否包含数字
您可以使用InputVerifer
对字段进行发布验证,有关详细信息,请参阅Validating Input。
我已经为KeyTyped编写了以下函数,但它没有用,任何人都可以提供替代
您可以使用DocumentListener
进行实时验证,有关详细信息,请参阅Implementing a Document Filter和DocumentFilter Examples
答案 1 :(得分:1)
正则表达式可以解决这个问题:
char c = evt.getKeyChar();
//create a pattern that checks for digits and backspace
Pattern p = Pattern.compile("[0-9\\b]");
//check if your character as a string matches the pattern
Matcher m = p.match("" + c);
boolean b = m.matches();
//I don't know if there is a regex equivilent for delete
if(!(b || c == KeyEvent.VK_DELETE) ) {
evt.consume();
}