联系电话验证

时间:2015-06-19 06:05:51

标签: java swing validation

我想验证联系人没有文本字段以检查它是否包含数字。 我已经为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();
    }
}

2 个答案:

答案 0 :(得分:1)

  

我想验证联系人没有文本字段以检查它是否包含数字

您可以使用InputVerifer对字段进行发布验证,有关详细信息,请参阅Validating Input

  

我已经为KeyTyped编写了以下函数,但它没有用,任何人都可以提供替代

您可以使用DocumentListener进行实时验证,有关详细信息,请参阅Implementing a Document FilterDocumentFilter 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();
}