java - 手机号码验证问题的正则表达式模式

标签 java regex user-interface

我不知道我的代码有什么问题,我只想接受这种格式的手机号码:09xxxxxxxxx(始终以“09”开头,总共 11 位数字)。所有努力将不胜感激。提前致谢。

Here is the picture of the problem

代码如下:

String a2= jTextField6.getText();
String a3 = jTextField7.getText();

Pattern p = Pattern.compile("^(09) \\d {9}$");
Matcher m = p.matcher(jTextField5.getText());

if (!m.matches()){         
     int b = JOptionPane.ERROR_MESSAGE;
     JOptionPane.showMessageDialog(this, "Invalid Mobile Number", "Error", b);    
     return;
}
if (null==a2||a2.trim().isEmpty()){
     int b = JOptionPane.ERROR_MESSAGE;
     JOptionPane.showMessageDialog(this, "Fields should not left blank", "Error", b);
     return;
} 
if(a3==null||a3.trim().isEmpty()){
     int b = JOptionPane.ERROR_MESSAGE;
     JOptionPane.showMessageDialog(this, "Fields should not left blank", "Error", b);  
}

else { 
    int c = JOptionPane.YES_NO_OPTION;
    int d = JOptionPane.showConfirmDialog(this, "Confirm Purchase?","Costume 1", c);
    if (d==0){
        JOptionPane.showMessageDialog( null,"Your costume will be delivered 3-5 working days." +"\n"+"\n"+"                   Thank You!");
    }

最佳答案

您必须删除正则表达式中的空格:

 Pattern p = Pattern.compile("^(09)\\d{9}$");

否则它们将被视为必须存在的角色。

关于java - 手机号码验证问题的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52345158/

相关文章:

java - 将高度模板化的 C++ 代码迁移到 Java

java - WatchService 轮询不正确

python - 如何在pandas数据框+ python中的一列中查找<>之间的多个子字符串

java - 匹配非多行正则表达式

java - 如何从 actionPerformed 获取源对象,以便能够使用 getText() 方法并将文本从 JButton 输出到字符串文件?

java - 从菜单转发操作到父类

java - 如何在java蛇梯游戏中设置蛇和梯子的位置?

带有 JPA + Hibernate(或类似)和 Apache Derby 嵌入式数据库的 Java 独立应用程序

Java:弃用的工具

java - 使用正则表达式拆分字符串时的 Stackoverflow