Java Program to Check For a Valid Mobile Number - GeeksforGeeks

23 Dec, 2021
Regular Expressions or Regex (in short) is an API for defining String patterns that can be used for searching, manipulating, and editing a string in Java. Email validation and passwords are few areas of strings where Regex is widely used to define the constraints. Regular Expressions are provided under java.util.regex package. This consists of 3 classes and 1 interface.
Here we will be discussing out two examples, one for India and the other be standard validating over for all countries. Hence, the cases are as follows:
Case 1: Local phone numbers that are Indian phone numbers
Case 2: Global phone numbers
Case 1: Local phone numbers that are Indian phone numbers  
Mobile Number validation criteria are as follows:
The first digit should contain numbers between 7 and 9.
The rest 9 digits can contain any number between 0 and 9.
The mobile number can have 11 digits also by including 0 at the starting.
The mobile number can be of 12 digits also by including 91 at the starting.
Illustration:
Input  : Enter Mobile Number: 7873923408
Output : Valid Mobile Number
Input  : Enter Mobile Number: 5678729234
Output : Invalid Mobile Number
Concept:
One must have a good understanding of regular expression as it is a prerequisite. Mobile number validation in Java is done using Pattern and Matcher classes of Java. The pattern class is used to compile the given pattern/regular expression and the matcher class is used to match the input string with compiled pattern/regular expression. In this method, a regular expression is mentioned, which mentions the criteria for validation of the input string which in this article is a mobile number. The mobile number in India has 10 digits, so we can mention a regular expression that contains only 10 digits.
Example:
Java
// Java Program to Check if Mobile Number is Valid or Not // Importing all regex classes from java.util package to// match character sequence against patterns// Importing input output classesimport java.io.*;import java.util.regex.*;// Main classclass GFG {     // Method 1    // To check whether number is valid or not    public static boolean isValid(String s)    {         // The given argument to compile() method        // is regular expression. With the help of        // regular expression we can validate mobile        // number.        // The number should be of 10 digits.         // Creating a Pattern class object        Pattern p = Pattern.compile("^\\d{10}$");         // Pattern class contains matcher() method        // to find matching between given number        // and regular expression for which        // object of Matcher class is created        Matcher m = p.matcher(s);         // Returning boolean value        return (m.matches());    }     // Method 2    // Main driver method    public static void main(String[] args)    {         // Considering two numbers as inputs        // Custom input numbers        String s = "7984286257";        String s_1 = "5426391";         // Checking over method 1 for string 1        if (isValid(s))             // Print statement            System.out.println("Valid Number");        else             // Print statement            System.out.println("Invalid Number");         // Again, checking over method 1 for string 1        if (isValid(s_1))             // Print statement            System.out.println("Valid Number");        else             // Print statement            System.out.println("Invalid Number");    }}
Valid Number
Invalid Number
Case 2: Global phone numbers 
The approach is again with the help of regular Expression to match Phone Number of All Country Formats
Mobile number validation criteria: 
The country code prefix starts with ‘+’ and has 1-3 digits.Most of the countries have the last 4 digits after a hyphen(-).
The country code prefix starts with ‘+’ and has 1-3 digits.
Most of the countries have the last 4 digits after a hyphen(-).
The numbers which satisfy the validation are shown in illustrations as follows:
Illustration:
Input  : Enter Mobile Number : +1 212 555-3458 (USA)
Output : Valid Mobile Number
Input  : Enter Mobile Number : +4934 351 125-3456
Output : Invalid Mobile Number
Example:
Java
// Java program to Check if Mobile Number is Valid or Not // Importing all regex classes for// character sequences with pattern matchingimport java.util.regex.*; // Main classclass GFG {     // Method 1    //    public static boolean isValid(String s)    {         // The given argument to compile() method        // is regular expression. With the help of        // regular expression we can validate mobile        // number for which we create an object of        // Pattern class         Pattern p = Pattern.compile(            "^(\\+\\d{1,3}( )?)?((\\(\\d{1,3}\\))|\\d{1,3})[- .]?\\d{3,4}[- .]?\\d{4}$");         // Pattern class contains matcher() method        // to find matching between given number        // and regular expression by creating an object of        // Matcher class        Matcher m = p.matcher(s);         // Returns boolean value        return (m.matches());    }     // Method 2    // Main driver method    public static void main(String[] args)    {         // Custom input strings        String s = "+1 212 555-3458";        String s_1 = "+4934 351 125-3456";         // Checking if the strings are valid or not        if (isValid(s))             // Print statement            System.out.println("Valid Number");        else             // Print statement            System.out.println("Invalid Number");         // Again, checking over another string(phone number)        if (isValid(s_1))             // Print statement            System.out.println("Valid Number");        else             // Print statement            System.out.println("Invalid Number");    }}
Valid Number
Invalid Number
singghakshay
surinderdawra388
Picked
Java
Java Programs
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Stream In Java
Constructors in Java
Exceptions in Java
Functional Interfaces in Java
Different ways of Reading a text file in Java
Java Programming Examples
Convert Double to Integer in Java
Implementing a Linked List in Java using Class
How to Iterate HashMap in Java?
Program to print ASCII Value of a character