Reputation: 21
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
Upvotes: 0
Views: 43430
Reputation: 1170
You can simply write the following:
var pattern=/^(0|[+91]{3})?[7-9][0-9]{9}$/;
Upvotes: 2
Reputation: 5690
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>
Upvotes: 1
Reputation:
Use the mask function
jQuery(function($){
$("#phone").mask("999-999-9999",{placeholder:" "});
});
Upvotes: 1
Reputation: 13702
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 regexKnowing 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.
Upvotes: 8
Reputation: 431
\+[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
Upvotes: 1
Reputation: 108975
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:
Upvotes: 2