I\'m having issues with the jquery validator validating phone numbers. So in a form where I have an input for phone number, I use jquery\'s additional methods to validate the ph
Here is a custom validation for phone template:
jQuery.validator.addMethod("phone", function (phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^\(?[\d\s]{3}-[\d\s]{3}-[\d\s]{4}$/);
}, "Invalid phone number");
ex: 123-123-1234
And here is a format with country prefix :
jQuery.validator.addMethod("phoneUS", function (phone_number, element) {
phone_number = phone_number.replace(/\s+/g, "");
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^\+[0-9]{11}$/);
}, "Please specify a valid phone number");
Just add the phoneUS class to the imput ex +41748987145
This method is an extension for jquery validation. In this way you define your own custom rules. Belive me, there are situations where you need them.
You are using the phoneUS validation method for the phone number, which accepts both of the inputs below (examples):
Since the first example is considered valid, you attempt to store it directly into your database, and it seems that you are using an integer or number column. Many databases, including MySQL will attempt to coerce that value into an integer by simply dropping everything after the first non-numeric character. I always recommend using a varchar
field for storing phone numbers because the numbers don't really have a numeric meaning (ie you're never going to add/subtract).
Also, it's a bad idea to simply rely on client side validation. You always want to validate your data on the server side because it's very trivial to trick client side validation (maliciously or not).
If the database field is holding integers and you're sending stuff like "987-123-1223", depending on your db engine only the first digits will be stored.
I've had this problem myself already! You can fix it on the server side using simple string replacement methods!