一、車牌號校驗規則
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:去掉警車號牌規則,增加長度驗證。
