我正在尝试验证邮政编码的输入,现在这个邮政编码应该适用于美国、加拿大、英国、所有国家,但忽略任何特殊字符,所以我尝试了,如果通过了,首先检查无效字符然后我检查邮政编码要么是美国,要么不仅仅是为了确保有有效字符并且不超过 8 个(只要现在是美国,它们之间的空格就可以了(其中包括 - 用于 5 + 4)
我遇到的问题是,例如 11215 对于有效字符验证返回为假,而 11215@@ 也返回假。
这是我的正则表达式:
var reg1 = /^[\^$%@!#&\*:<>\?\/\\~\{\}\(\)\+|]+$/;
var reg2 = /(^\d{5}$)|(^\d{5}-\d{4}$)|(([a-z0-9]{8})*$)/
var isOk = reg1.test("11215"); // returns false!
if(isOk)
{
isOk = isOk && reg2.test("11215");
}
var isOk2 = reg1.test("11215@@"); // returns false also!
if(isOk2)
{
isOk2 = isOk2 && reg2.test("11215@@");
}