Search code examples
javascriptregexvalidation

Regex for Mobile Number with or without Country Code


I need to validate a text field in my registration form for which I want a Regex.

The textbox will accept a mobile number like 9999999999(10 digit - starting with 7 or 8 or 9). The user may alternatively write +919999999999, where +91 is country code (+91 for India, but can accept any other like +110 or +52), or he may also write 09999999999 (first 0 for own country)

Here, the user have 3 choices,

  1. adding the mobile number with country code
  2. simply without country code or 0 prefixed
  3. With a zero prefixed in mobile number.

Though not required, my page is in asp.net, and I am using built-in regular expression validator.


Solution

  • From what I can see, this should work. The prefix is optional and is stored into the first match group, with the main number going into the second group.

    ^([0|\+[0-9]{1,5})?([7-9][0-9]{9})$
    

    But if you can give us some test cases for each, it'd help us in giving you a working regex for what you want.

    Props to SchlaWiener in the comments for the correct limit on the country code length.