一、车牌号校验规则
1.常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成。如:粤B12345;
2.最后一个为汉字的车牌:允许以汉字开头,后面可录入六个字符,前五位字符,由大写英文字母和阿拉伯数字组成,而最后一个字符为汉字,汉字包括“挂”、“学”、“警”、“港”、“澳”。如:粤Z1234港。3.新军车牌:以两位为大写英文字母开头,后面以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 number is v_result number; v_express varchar2(600); begin -- 默认0,表示不正确 v_result := 0; if length(p_vehicle_number) = 7 then v_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;}
三、参考资料
四、版本更新说明
2016-11-25:去掉警车号牌规则,增加长度验证。