验证手机号码字段

时间:2013-09-04 16:08:30

标签: java regex validation lost-focus

我想知道这段代码有什么问题? 我正在文本框中输入我的输入(一个10位数的手机号码)。 我的问题是,即使我的输入是正确的,这段代码也会一直打印else语句。

mobNo=textMobNo.getText();

textMobNo.addFocusListener(new FocusListener() {

    @Override
    public void focusLost(FocusEvent arg0) {
        // TODO Auto-generated method stub

        Pattern pattern = Pattern.compile("^[789]\\d{9}$");
        Matcher matcher = pattern.matcher(mobNo);

        if (matcher.matches()){
            System.out.println("valid");
        }
        else{
            System.out.println("invalid");
        }       
    }

    @Override
    public void focusGained(FocusEvent arg0) {
        // TODO Auto-generated method stub

    };
});

1 个答案:

答案 0 :(得分:1)

您正在从文本字段中获取文本,然后添加一个focusListener。稍后,焦点侦听器将被触发,然后使用在焦点侦听器处于活动状态之前从场中获取的文本。是的,该文本可能来自于在该领域输入任何内容之前;这可以解释它是一个空字符串。尝试在焦点监听器中获取文本...(提示 - 从文本字段中获取的字符串不会随着文本在字段中键入而不断更新...)