0

JS代码:

我正在使用以下代码对三个国家/地区 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;

};

现在,客户已经更新了他们的代码并使用 MASK 插件作为输入文本框。掩码模式正在使用 data-mask 属性进行渲染。下面是为邮政编码输入控件渲染的 HTML。

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

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

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

请提出一些实现方法来涵盖这种情况。

提前致谢。

4

1 回答 1

1

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

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

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

于 2013-02-28T14:24:42.127 回答