从Mask值创建Regex Pattern以验证邮政编码

时间:2013-02-28 14:08:59

标签: javascript jquery regex

JS代码:

我使用以下代码进行美国/ 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;

};

现在,客户端已更新其代码并使用MASK插件输入文本框。掩模图案使用data-mask属性进行渲染。下面是用于邮政编码的输入控件的呈现HTML。

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

问题领域:现在有了最新的代码库,它们覆盖了超过10个国家/地区,每个国家/地区都有不同的邮政编码模式。

那么,是否可以根据输入字段附带的掩码值生成正则表达式模式?这样,我不需要进行国家特定的检查。

请提供一些实施方法来涵盖这种情况。

提前致谢。

1 个答案:

答案 0 :(得分:1)

MASK插件已经在输入的邮政编码中执行客户端验证。这就是它的用途。使用Javascript使用您自己的客户端验证复制它是没有意义的。

客户端验证只是为用户提供便利(快速报告错误,以便用户在提交表单之前纠正错误);它永远不能保证有效的输入,因为它很容易被规避。

如果要确保良好的输入,则必须在服务器端进行验证。