本文主要是介绍车牌号校验正则表达式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、车牌号校验规则
1.常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成。如:粤B12345。
2.武警车牌:允许前两位为大写英文字母,后面可录入五个或六个字符,由大写英文字母和阿拉伯数字组成,其中第三位可录汉字也可录大写英文字母及阿拉伯数字,第三位也可空,如:WJ警00081、WJ京1234J、WJ1234X。
3.最后一个为汉字的车牌:允许以汉字开头,后面可录入六个字符,前五位字符,由大写英文字母和阿拉伯数字组成,而最后一个字符为汉字,汉字包括“挂”、“学”、“警”、“军”、“港”、“澳”。如:粤Z1234港。
4.新军车牌:以两位为大写英文字母开头,后面以5位阿拉伯数字组成。如:BA12345。
二、正则表达式
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$
三、使用示例
1. Oracle PL/SQL
create or replace function is_vehicle_number(p_vehicle_number in varchar2) return numberisv_result number;v_express varchar2(600);begin-- 默认0,表示不正确v_result := 0;if length(p_vehicle_number) = 7 thenv_express := '^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$';if regexp_like(p_vehicle_number, v_express) then v_result := 1;end if;end if;return v_result;end;
2. Javascript
function isVehicleNumber(vehicleNumber) {var result = false;if (vehicleNumber.length == 7){var express = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;result = express.test(vehicleNumber);}return result;}
3.C#
public static bool IsVehicleNumber(string vehicleNumber)
{bool result = false;if (vehicleNumber.Length == 7){string express = @"^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$";result = Regex.IsMatch(vehicleNumber, express);}return result;
}
4.Mysql
SELECT name FROM person_tbl WHERE name REGEXP '^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$';
5.python3
import re
pattern = re.compile(r'^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$', re.I) # re.I 表示忽略大小写
m = pattern.match('粤B12345')
m
参考文档:
https://segmentfault.com/a/1190000012427912
https://blog.csdn.net/xjun0812/article/details/81806118
这篇关于车牌号校验正则表达式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!