Lokesh Yadav
Lokesh Yadav

Reputation: 1602

Create Regex Pattern from Mask value to validate the zip code

JS Code:

I was using the following code for zip code validation for three countries USA/BR/CA.

/*To Get ZipCodeRegex as per country */
function getZipRegEx(inputcountry) {
var returntext;
if (inputcountry == "USA") {
    returntext = /^\d{5}$/
}
else if (inputcountry == "CA") {
    returntext = /^[ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy]{1}\d{1}[A-Za-z]{1} *\d{1}[A-Za-z]{1}\d{1}$/
}
else if (inputcountry == "BR") {
    returntext = /^([0-9]){5}([-])([0-9]){3}$/
}
return returntext;

};

Now, client has updated their code and using the MASK Plugin for input textbox. The mask pattern is rendering with data-mask attribute. Below is the rendered HTML for input control for zip code.

<input type="text" name="zip" id="zip" value="" class="required" data-mask="99999" />

Problem Area : Now with latest code base, they are covering more then 10 countries and each and every country/state is having different pattern for zip code.

So, is it possible to generate the regex pattern based on mask value coming with input field? This way, i need not to put the country specific checks.

Please suggest some implementation approach to cover this scenario.

Thanks in advance.

Upvotes: 0

Views: 2119

Answers (1)

user1919238
user1919238

Reputation:

The MASK Plugin is already performing client-side validation of the entered ZIP code. That is what it is for. It doesn't make sense to duplicate that with your own client-side validation using Javascript.

Client side validation is just a convenience for the user anyway (reporting mistakes quickly so the user can correct them before the form is submitted); it never guarantees valid input, because it can be easily circumvented.

If you want to ensure good input, you must validate on the server side.

Upvotes: 1

Related Questions