我想限制移动电话号码,用户只能输入10个数字,并且不允许使用任何符号和字母。我使用的代码对输入字母没有任何限制。
mno=new TextField();
mno.setBounds(340, 460, 0, 0);
mno.setSize(90, 25);
mmess=new JLabel("Enter valid mobile no.");
mmess.setBounds(450, 460, 0, 0);
mmess.setSize(300, 30);
mmess.setVisible(false);
mno.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
String input=mno.getText();
Pattern patt = Pattern.compile("^\\d{10}$");
Matcher m = patt.matcher(input);
if (m.find()) {
mmess.setVisible(true);
mmess.setForeground(Color.RED);
}
else {
mmess.setVisible(false);
}
}
});
最佳答案
请参考以下代码,在移动电话号码中也考虑了国家(地区)代码,如果不需要,可以将其删除,然后使用此正则表达式"^\\+([0-9\\-]?){9,11}[0-9]$"
。
String regex = "^((\\+|00)(\\d{1,3})[\\s-]?)?(\\d{10})$";
String str = "+123-9854875847";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(str);
if (m.matches()) {
// actions to be taken
}
关于java - 手机号码限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36789989/