我想知道这段代码有什么问题? 我正在文本框中输入内容(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
};
});
最佳答案
您正在从文本字段获取文本,然后添加焦点监听器。稍后,焦点监听器将被触发,然后使用在焦点监听器处于 Activity 状态之前从字段中获取的文本。是的,该文本可能是在该字段中输入任何内容之前的文本;这可以解释它是一个空字符串。尝试将文本放入焦点监听器...(提示 - 当在字段中键入文本时,从文本字段获取的字符串不会不断更新...)
关于java - 手机号码字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18618813/