最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

mobile number validation using regex javascript - Stack Overflow

programmeradmin1浏览0评论

I want mobile number in format +91(or any other country code)-9999999999(10 digit mobile number).

I have tried /^\+[0-9]{2,3}+[0-9]\d{10}, but its not working please help

Thanks in advance

I want mobile number in format +91(or any other country code)-9999999999(10 digit mobile number).

I have tried /^\+[0-9]{2,3}+[0-9]\d{10}, but its not working please help

Thanks in advance

Share Improve this question edited Apr 24, 2013 at 9:47 Richard 109k21 gold badges211 silver badges274 bronze badges asked Apr 24, 2013 at 9:45 anup navareanup navare 211 gold badge1 silver badge4 bronze badges
Add a comment  | 

6 Answers 6

Reset to default 8

Solution in short:

// should return an array with a single match representing the phone number in arr[0]
var arr = '+49-1234567890'.match(/^\+\d{1,3}-\d{9,10}$/); 
// should return null
var nullVal = 'invalid entry'.match(/^\+\d{1,3}-\d{9,10}$/); 

Longer explanation:

  • / start regex
  • ^ try to match from the beginning
  • \+ match a + sign
  • \d{1,3} match a digit 1 to 3 times
  • - match a dash
  • \d{9,10} match 9 or 10 digits
  • $ force the matching to be only valid if can be applied until string termination
  • / finish regex

Knowing what the regex does, might let you modify it to your own needs

Sometimes it is good to ignore any whitespaces you come across. \s* matches 0 or n whitespaces. So in order to be more permissive you could let users input something like ' + 49 - 1232345 '

The regex to match this would be /^\s*\+\s*\d{1,3}\s*-\s*\d{9, 10}\s*$/ (just filled the possible space locations with \s*)

Other than that: I warmly recommend mastering regexes, because they come really handy in many situations.

If you are expecting a dash in the number (which your format shows), there is nothing in your regex to match it: is the second plus in the regex meant to be a dash?

^\+[0-9]{2,3}-[0-9]\d{10}

Also note that:

  1. some country codes are single digit (eg. 1 for North America, 7 for Russia), these will not be matched
  2. I doubt the local part of all mobiles everywhere is always 10 digits (eg. it won't be enough in countries with large populations as mobile ownership grows)

You can simply write the following:

var pattern=/^(0|[+91]{3})?[7-9][0-9]{9}$/;
\+[0-9]{2,3}-[0-9]+

Try this. This matches a + in the beginning, two or three numbers for the country code, followed by a - followed by any number of numbers

Use the mask function

jQuery(function($){
  $("#phone").mask("999-999-9999",{placeholder:" "});   
});

look here http://office.microsoft.com/en-in/access-help/control-data-entry-formats-with-input-masks-HA010096452.aspx

For mobile validation please try this

<html>
<head>
<title>Mobile number validation using regex</title>
<script type="text/javascript">
    function validate() {
        var mobile = document.getElementById("mobile").value;
        var pattern = /^[7-9][0-9]{9}$/;
        if (pattern.test(mobile)) {
            alert("Your mobile number : "+mobile);
            return true;
        }
        alert("It is not valid mobile number");
        return false;

    }
</script>

</head>
<body>
Enter Mobile No. :
<input type="text" name="mobile" id="mobile" />
<input type="submit" value="Check" onclick="validate();" />
</body>
</html>
发布评论

评论列表(0)

  1. 暂无评论