70

I'm using HTML5 form validation to validate phone numbers from India.

Phone numbers from India are 10 digits long, and start with 7, 8, or 9.

For example:

  1. 7878787878
  2. 9898989898
  3. 8678678878

These phone numbers are valid, but

  1. 1212121212
  2. 3434545464
  3. 6545432322

are invalid.

Suggest a pattern that can detect valid India phone numbers.

So far, my pattern is [0-9]{10}, but it doesn't check if the first digit is 7, 8, or 9.

4
  • 2
    This answer should help you validate phone numbers for all over the world. It also includes validation for other types of input. Commented Nov 18, 2014 at 18:12
  • 2
    Why not use min="7000000000" and max="9999999999" ? Commented Mar 11, 2018 at 5:42
  • starting from 6 mobile numbers are also valid see here Commented Feb 21, 2020 at 10:04
  • I use github.com/google/libphonenumber library to use Phone validation properly for any country. Commented Jun 5, 2024 at 6:43

7 Answers 7

104

How about

<input type="text" pattern="[789][0-9]{9}">
Sign up to request clarification or add additional context in comments.

1 Comment

However, I would recommend adding both the start and end anchors due to browsers being inconsistent with following the HTML5 specification about anchoring - Chrome and Firefox have both only anchored at the start at some point in the past.
59

How about this? /(7|8|9)\d{9}/

It starts by either looking for 7 or 8 or 9, and then followed by 9 digits.

7 Comments

why /d is used in pattern. what is meaning?
\d means any digit and the {9} is 9 instances of any digit.
congo dude its works i big relief. but why you have placed / at staring and ending of pattern.
the / at the beginning and end of the regular expression denotes the beginning and end of the regular expression. So, in your code, it's this: var myRegEx = /(7|8|9)\d{9}/;
you may also want to add a terminator to the end of the regular expression otherwise it may accept other characters after the nine digits so you should have /(7|8|9)\d{9}$/
|
13

Try this code:

<input type="text" name="Phone Number" pattern="[7-9]{1}[0-9]{9}" 
       title="Phone number with 7-9 and remaing 9 digit with 0-9">

This code will inputs only in the following format:

9238726384 (starting with 9 or 8 or 7 and other 9 digit using any number)
8237373746
7383673874

Incorrect format:
2937389471(starting not with 9 or 8 or 7)
32796432796(more than 10 digit)
921543(less than 10 digit)

1 Comment

Your answer doesn't contain any information which is not already provided by any of the other answers.
12

The regex validation for india should make sure that +91 is used, then make sure that 7, 8,9 is used after +91 and finally followed by 9 digits.

/^+91(7\d|8\d|9\d)\d{9}$/

Your original regex doesn't require a "+" at the front though.

Get the more information from below link
w3schools.com/jsref/jsref_obj_regexp.asp

1 Comment

I think a better solution for this is /^[+]91(9|8|7)\d{9}$/ which is more appropriate for ECMA6. We don't really need the \d while checking for the first digit.
6

This code will accept all country code with + sign

<input type="text" pattern="[0-9]{5}[-][0-9]{7}[-][0-9]{1}"/>

Some countries allow a single "0" character instead of "+" and others a double "0" character instead of the "+". Neither are standard.

1 Comment

sorry but i can't see + sign in the pattern
6

Improving @JamesPlayer's answer:

Since now in India, a new series of phone numbers started with 6. Use this 👇

<input type="text" pattern="[6789][0-9]{9}">

To show a custom error message, use the title attribute.

<input type="text" pattern="[6789][0-9]{9}" title="Please enter valid phone number">

That's all folks. 🎉

2 Comments

How can I show the title message in mat-error ? Somehow title is not working this way.
@OptimistRohit I think this is what you are looking for? stackoverflow.com/questions/47884655/…
0

enter image description here

^[789]\d{9,9}$

  • Minimum digits 10
  • Maximum digits 10
  • number starts with 7,8,9

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.