码迷,mamicode.com
首页 > 其他好文 > 详细

车牌号校验正则表达式

时间:2016-06-23 12:37:50      阅读:3284      评论:0      收藏:0      [点我收藏+]

标签:

一、车牌号校验规则

1.常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成。如:粤B12345;
2.武警车牌:允许前两位为大写英文字母,后面可录入五个或六个字符,由大写英文字母和阿拉伯数字组成,其中第三位可录汉字也可录大写英文字母及阿拉伯数字,第三位也可空,如:WJ警00081、WJ京1234J、WJ1234X。
3.最后一个为汉字的车牌:允许以汉字开头,后面可录入六个字符,前五位字符,由大写英文字母和阿拉伯数字组成,而最后一个字符为汉字,汉字包括“挂”、“学”、“警”、“军”、“港”、“澳”。如:粤Z1234港。
4.新军车牌:以两位为大写英文字母开头,后面以5位阿拉伯数字组成。如:BA12345。

 

二、正则表达式

^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[警京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{0,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;
    
    v_express := ^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[警京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{0,1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$;
    
    if regexp_like(p_vehicle_number, v_express) then      
      v_result := 1;
    end if;
    
    return v_result;
  end;

2. Javascript

  function isVehicleNumber(vehicleNumber) {
      var express = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[警京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{0,1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
      return express.test(vehicleNumber);
  }

3.C#

public static bool IsVehicleNumber(string vehicleNumber)
{
    string express = @"^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[警京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{0,1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$";
    return Regex.IsMatch(vehicleNumber, express);
}

 

三、参考资料
js校验车牌号
车牌的特殊牌照

车牌号校验正则表达式

标签:

原文地址:http://www.cnblogs.com/jacktang/p/5609931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!