返回
正则表达式教程:中国邮政编码校验
正则表达式
2024-02-28 16:05:50
一、正则解释
正则表达式:/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/
拆分正则:
^
: 起始锚点,匹配字符串的开头(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])
: 匹配中国省份的邮政编码前两位,其中:0[1-7]
: 北京、天津、河北、山西、内蒙古、辽宁、吉林1[0-356]
: 上海、江苏、浙江、安徽、福建、山东2[0-7]
: 黑龙江、吉林、辽宁、河北、河南、山东、山西3[0-6]
: 浙江、安徽、福建、江西、山东、江苏4[0-7]
: 广东、广西、海南、湖南、湖北、江西、福建5[1-7]
: 四川、贵州、云南、西藏、重庆、陕西、甘肃6[1-7]
: 陕西、甘肃、青海、宁夏、新疆、西藏、四川7[0-5]
: 辽宁、吉林、黑龙江、内蒙古、河北8[013-6]
: 广西、云南、贵州、四川、重庆、西藏、青海
\d{4}
: 匹配后四位数字$
: 结束锚点,匹配字符串的结尾
二、使用场景
该正则表达式主要用于校验中国邮政编码的格式是否正确,可以应用于以下场景:
- 用户注册或信息收集时,验证用户输入的邮政编码
- 地址管理系统中,校验地址信息的邮政编码
- 物流管理系统中,处理邮寄包裹时校验邮政编码
三、代码示例
JavaScript
const regex = /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/;
const isValid = regex.test('100101'); // true
console.log(isValid);
Java
import java.util.regex.Pattern;
public class PostalCodeValidator {
private static final String REGEX = "^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\\d{4}import java.util.regex.Pattern;
public class PostalCodeValidator {
private static final String REGEX = "^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\\d{4}$";
public static boolean isValid(String postalCode) {
return Pattern.matches(REGEX, postalCode);
}
public static void main(String[] args) {
boolean isValid = isValid("100101"); // true
System.out.println(isValid);
}
}
quot;;
public static boolean isValid(String postalCode) {
return Pattern.matches(REGEX, postalCode);
}
public static void main(String[] args) {
boolean isValid = isValid("100101"); // true
System.out.println(isValid);
}
}
PHP
<?php
$regex = "/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/";
$isValid = preg_match($regex, '100101'); // 1 (true)
var_dump($isValid);
Python
import re
regex = r"^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}import re
regex = r"^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$"
match = re.match(regex, '100101')
if match:
print("有效邮政编码")
else:
print("无效邮政编码")
quot;
match = re.match(regex, '100101')
if match:
print("有效邮政编码")
else:
print("无效邮政编码")