我想限制移动电话号码,用户只能输入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/

10-09 18:48