dai*_*hop 5 javascript regex validation postal-code
可能重复:
英国邮政编码正则表达式(综合)
我有以下代码用于验证javascript中的邮政编码:
function valid_postcode(postcode) {
postcode = postcode.replace(/\s/g, "");
var regex = /[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}/i;
return regex.test(postcode);
}
Run Code Online (Sandbox Code Playgroud)
测试:
CF47 0HW - Passes - Correct
CF47 OHW - Passes - Incorrect
Run Code Online (Sandbox Code Playgroud)
我做了大量的研究,但似乎无法找到这个常见验证要求的权威正则表达式.有人能指出我正确的方向吗?
小智 7
通过添加^和$使你的正则表达式更严格.这应该工作:
function valid_postcode(postcode) {
postcode = postcode.replace(/\s/g, "");
var regex = /^[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}$/i;
return regex.test(postcode);
}
Run Code Online (Sandbox Code Playgroud)
你需要一个"权威的正则表达式" - 考虑到英国邮政编码的所有排列,它需要因此"不必要地大".这是我过去使用的一个
"(GIR 0AA)|((([ABCDEFGHIJKLMNOPRSTUWYZ][0-9][0-9]?)|(([ABCDEFGHIJKLMNOPRSTUWYZ][ABCDEFGHKLMNOPQRSTUVWXY][0-9][0-9]?)|(([ABCDEFGHIJKLMNOPRSTUWYZ][0-9][ABCDEFGHJKSTUW])|([ABCDEFGHIJKLMNOPRSTUWYZ][ABCDEFGHKLMNOPQRSTUVWXY][0-9][ABEHMNPRVWXY])))) [0-9][ABDEFGHJLNPQRSTUWXYZ]{2})"
Run Code Online (Sandbox Code Playgroud)
请注意,例如,我从不使用AZ,因为在每个部分中始终排除某些字母.
| 归档时间: |
|
| 查看次数: |
28019 次 |
| 最近记录: |