PHP:车牌照合法性

文章来源:http://www.cnblogs.com/hello-tl/p/7592362.html 

<?php
/**
 * [verifyCarCard description] 效验车牌号码合法性
 * @param null $carCard 车牌号
 */
function verifyCarCard($carCard = null){
    $ret = false;
    # 判断是否有值
    if($carCard){
        /**
         * 随着地理的更改儿更改
         * 车牌号后五位只最多有五个字母
         * 京  北京市(京)  京A、京C、京E、京F 北京市(城区),京G 北京市(远郊区), 京B 出租车  [A,C,E,F,G]
         * 津  天津市(津)  津A、津B、津C 天津市,津E 出租车  [A,B,C,E]
         * 沪  上海市(沪)  沪A、沪B、沪D 上海市区,沪C 远郊区  [A-D]
         * 渝  重庆市(渝)  渝A 重庆市区(江南),渝B 重庆市区(江北),渝C 永川区,渝F 万州区,渝G 涪陵区,渝H 黔江区  [A,B,C,F,G,H]
         * 冀  河北省(冀)  冀A 石家庄,冀B 唐山,冀C 秦皇岛,冀D 邯郸,冀E 邢台,冀F 保定,冀G 张家口,冀H 承德,冀J 沧州,冀R 廊坊,冀T 衡水 [A,B,C,D,E,F,G,H,J,R,T]
         * 豫  河南省(豫)  豫A 郑州,豫B 开封,豫C 洛阳,豫D 平顶山,豫E 安阳,豫F 鹤壁,豫G 新乡,豫H 焦作,豫J 濮阳,豫K 许昌,豫L 漯河,豫M 三门峡,豫N 商丘,豫P 周口,豫Q 驻马店,豫R 南阳,豫S 信阳,豫U 济源  [A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U]
         * 云  云南省(云)  云A 昆明,云B 东川,云C 昭通,云D 曲靖, 云E 楚雄彝族,云F 玉溪,云G 红河哈尼族,云H 文山壮族苗,云J 思茅,云L 大理白族,云K 西双版纳,云M 保山,云N 德宏傣族,云P 丽江,云Q 怒江傈族,云R 迪庆藏族,云S 临沧  [A,B,C,D,E,F,G,H,J,L,K,M,N,P,Q,R,S]
         * 辽  辽宁省(辽)  辽A 沈阳,辽B 大连,辽C 鞍山,辽D 抚顺,辽E 本溪,辽F 丹东,辽G 锦州,辽H 营口,辽J 阜新,辽K 辽阳,辽L 盘锦,辽M 铁岭,辽N 朝阳,辽P 葫芦岛,辽V 省直机关  [A,B,C,D,E,F,G,H,J,K,L,M,N,P,V]
         * 黑  黑龙江省(黑)黑A 哈尔滨 ,黑B 齐齐哈尔,黑C 牡丹江,黑D 佳木斯,黑E 大庆,黑F 伊春,黑G 鸡西,黑H 鹤岗,黑J 双鸭山,黑K 七台河,黑L 松花江行署,黑M 绥化,黑N 黑河,黑P 大兴安岭  [A,B,C,D,E,F,G,H,J,K,L,M,N,P]
         * 湘  湖南省(湘)  湘A 长沙,湘B 株洲,湘C 湘潭,湘D 衡阳,湘E 邵阳,湘F 岳阳,湘G 大庸,湘H 益阳,湘J 常德,湘K 娄底,湘L 郴州,湘M 零陵,湘N怀化,湘P 湘西州  [A,B,C,D,E,F,G,H,J,K,L,M,N,P]
         * 皖  安徽省(皖)  皖A 合肥,皖B 芜湖,皖C 蚌埠,皖D 淮南,皖E 马鞍山,皖F 淮北,皖G 铜陵,皖H 安庆,皖J 黄山,皖K 阜阳,皖L 宿州,皖M 滁州,皖N 六安,皖P 宣城,皖Q 巢湖,皖R 池州  [A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R]
         * 鲁  山东省(鲁)  鲁A 济南,鲁B 青岛,鲁C 淄博,鲁D 枣庄,鲁E 东营,鲁F 烟台,鲁G 潍坊,鲁H 济宁,鲁J 泰安,鲁K 威海,鲁L 日照,鲁M 莱芜,鲁N ?荩�砅 聊城,鲁Q 临沂,鲁R 荷泽,鲁U 青岛开发区  [A,B,C,D,E,F,G,H,J,K,L,M,N,Q,R,U]
         * 新  新疆维吾尔(新) 新A 乌鲁木齐,新B 昌吉回族,新C 石河子,新D 奎屯,新E 博尔塔拉,新F 伊犁哈萨,新G 塔城,新H 阿勒泰,新J 克拉玛依,新K 吐鲁番, 新L 哈密,新M 巴音郭愣 ,新N 阿克苏,新P 克孜勒苏柯,新Q 喀什,新R 和田  [A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R]
         * 苏  江苏省(苏)  苏A 南京,苏B 无锡,苏C 徐州,苏D 常州,苏E 苏州,苏F 南通,苏G 连云港,苏H 淮阴,苏J 盐城,苏K 扬州,苏L 镇江,苏M 泰州,苏N 宿迁  [A,B,C,D,E,F,G,H,J,K,L,M,N]
         * 浙  浙江省(浙)  浙A 杭州,浙B 宁波,浙C ?荩�鉊 绍兴,浙E 湖州,浙F 嘉兴,浙G 金华,浙H 衢州,浙J 台州,浙K 丽水,浙L 舟山  [A,B,C,E,F,G,H,J,K,L]
         * 赣  江西省(赣)  赣A 南昌,赣B 赣州,赣C 宜春,赣D 吉安,赣E 上饶,赣F 抚州,赣G 九江,赣H 景德镇,赣J 萍乡,赣K 新余,赣L 鹰潭  [A,B,C,D,E,F,G,H,J,K,L]
         * 鄂  湖北省(鄂)  鄂A 武汉,鄂B 黄石,鄂C 十堰,鄂D 沙市,鄂E 宜昌,鄂F 襄樊,鄂G 鄂州,鄂H 荆门,鄂J 黄岗,鄂K 孝感,鄂L 咸宁,鄂M 荆州,鄂N 郧阳,鄂P 宜昌,鄂Q 鄂西州  [A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q]
         * 桂  广西壮族(桂) 桂A 南宁,桂B 柳州,桂C 桂林,桂D 梧州,桂E 北海,桂F 南宁,桂G 柳州,桂H 桂林,桂J 梧州,桂K 玉林,桂M 河池,桂L 百色,桂N 钦州,桂P 防城  [A,B,C,D,E,F,G,H,J,K,M,L,N,P]
         * 甘  甘肃省(甘)  甘A 兰州,甘B 嘉峪关,甘C 金昌,甘D 白银,甘E 天水,甘F 酒泉,甘G 张掖,甘H 武威,甘J 定西,甘K 陇南,甘L 平凉,甘M 庆阳 ,甘N 临夏回族,甘P 甘南藏族  [A,B,C,D,E,F,G,H,J,K,L,M,N,P]
         * 晋  山西省(晋)  晋A 太原,晋B 大同,晋C 阳泉,晋D 长治,晋E 晋城,晋F 朔州,晋H 忻州,晋J 吕梁,晋K 晋中,晋L 临汾,晋M 运城  [A,B,C,D,E,F,H,J,K,L,M]
         * 蒙  内蒙古(蒙)  蒙A 呼和浩特,蒙B 包头,蒙C 乌海,蒙D 赤峰,蒙E 呼伦贝尔盟,蒙F 兴安盟,蒙G 锡林郭勒盟,蒙H 乌兰察布盟,蒙J 伊克昭盟,蒙K 巴彦淖尔盟,蒙L 阿拉善盟  [A,B,C,D,E,F,G,H,J,K,L]
         * 陕  陕西省(陕)  陕A 西安,陕B 铜川,陕C 宝鸡,陕D 威阳,陕E 渭南,陕F 汉中,陕G 安康,陕H 商洛,陕J 延安,陕K 榆林,陕U 省直机关  [A,B,C,D,E,F,G,H,J,K,U]
         * 吉  吉林省(吉)  吉A 长春,吉B 吉林,吉C 四平,吉D 辽源,吉E 通化,吉F 白山,吉G 白城,吉H 延边朝鲜族  [A,B,C,D,E,F,G,H]
         * 闽  福建省(闽)  闽A 福州,闽B 莆田,闽C 泉州,闽D 厦门,闽E 漳州,闽F 龙岩,闽G 三明,闽H 南平,闽J 宁德,闽K 省直机关  [A,B,C,D,E,F,,G,H,J,K]
         * 贵  贵州省(贵)  贵A 贵阳,贵B 六盘水,贵C 遵义,贵D 铜仁,贵E 黔西南州,贵F 毕节,贵G 安顺,贵H 黔东南州,贵J 黔南州  [A,B,C,D,E,F,G,H,J]
         * 粤  广东省(粤)  粤A 广州,粤B 深圳,粤C 珠海,粤D 汕头,粤E 佛山,粤F 韶关,粤G 湛江,粤H 肇庆,粤J 江门,粤K 茂名,粤L 惠州,粤M 梅州,粤N 汕尾,粤P 河源,粤Q 阳江,粤R 清远,粤S 东莞,粤T 中山,粤U 潮州,粤V 揭阳,粤W 云浮,粤X 顺德,粤Y 南海,粤Z港澳进入内地车辆  [A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z]
         * 青  青海省(青)  青A 西宁,青B 海东,青C 海北,青D 黄南,青E 海南州,青F 果洛州,青G 玉树州,青H 海西州,  [A,B,C,D,E,F,G,H]
         * 藏  西藏(藏)    藏A 拉萨,藏B 昌都,藏C 山南,藏D 日喀则,藏E 那曲,藏F 阿里,藏G 林芝  [A,B,C,D,E,F,G]
         * 川  四川省(川)  川A 成都,川B 绵阳,川C 自贡,川D 攀枝花,川E 泸州,川F 德阳,川H 广元,川J 遂宁,川K 内江,川L 乐山,川Q 宜宾,川R 南充,川S 达县,川T 雅安,川U 阿坝藏族,川V 甘孜藏族,川W 凉山彝族  [A,B,C,D,E,F,H,J,K,L,Q,R,S,T,U,V,W]
         * 宁  宁夏回族(宁)宁A 银川,宁B 石嘴山,宁C 银南,宁D 固原  [A-D]
         * 琼  海南省(琼)  琼A 海口,琼B 三亚,琼C 琼北  [A-C]
         */
        $carCard_preg = "#(^京[A,C,E,F,G]{1}|^津[A,B,C,E]{1}|^沪[A-D]{1}|^渝[A,B,C,F,G,H]{1}|^冀[A,B,C,D,E,F,G,H,J,R,T]{1}|^豫[A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,U]{1}|^云[A,B,C,D,E,F,G,H,J,L,K,M,N,P,Q,R,S]{1}|^辽[A,B,C,D,E,F,G,H,J,K,L,M,N,P,V]{1}|^黑[A,B,C,D,E,F,G,H,J,K,L,M,N,P]{1}|^湘[A,B,C,D,E,F,G,H,J,K,L,M,N,P]{1}|^皖[A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R]{1}|^鲁[A,B,C,D,E,F,G,H,J,K,L,M,N,Q,R,U]{1}|^新[A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R]{1}|^苏[A,B,C,D,E,F,G,H,J,K,L,M,N]{1}|^浙[A,B,C,E,F,G,H,J,K,L]{1}|^赣[A,B,C,D,E,F,G,H,J,K,L]{1}|^鄂[A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q]{1}|^桂[A,B,C,D,E,F,G,H,J,K,M,L,N,P]{1}|^甘[A,B,C,D,E,F,G,H,J,K,L,M,N,P]{1}|^晋[A,B,C,D,E,F,H,J,K,L,M]{1}|^蒙[A,B,C,D,E,F,G,H,J,K,L]{1}|^陕[A,B,C,D,E,F,G,H,J,K,U]{1}|^吉[A,B,C,D,E,F,G,H]{1}|^闽[A,B,C,D,E,F,G,H,J,K]{1}|^贵[A,B,C,D,E,F,G,H,J]{1}|^粤[A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z]{1}|^青[A,B,C,D,E,F,G,H]{1}|^藏[A,B,C,D,E,F,G]{1}|^川[A,B,C,D,E,F,H,J,K,L,Q,R,S,T,U,V,W]{1}|^宁[A-D]{1}|^琼[A-C]{1})([A-Z]{1}[0-9]{4}|[A-Z]{1}[0-9]{3}[A-Z]{1}|[A-Z]{1}[0-9]{2}[A-Z]{1}[0-9]{1}|[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{2}|[A-Z]{2}[0-9]{3}|[0-9]{1}[A-Z]{1}[0-9]{3}|[0-9]{1}[A-Z]{1}[0-9]{2}[A-Z]{1}|[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}|[0-9]{1}[A-Z]{2}[0-9]{2}|[0-9]{2}[A-Z]{1}[0-9]{2}|[0-9]{2}[A-Z]{1}[0-9]{1}[A-Z]{1}|[0-9]{2}[A-Z]{2}[0-9]{1}|[0-9]{3}[A-Z]{1}[0-9]{2}|[0-9]{3}[A-Z]{2}[0-9]{1}|[0-9]{4}[A-Z]{1}|[0-9]{5})#";
        # 判断是否是正确车牌照
        if(preg_match($carCard_preg,$carCard)){
            $ret = true;
        }
    }
    return $ret;
}

echo verifyCarCard("琼AA111A");

文章来源:http://www.cnblogs.com/hello-tl/p/7592362.html 

原文地址:https://www.cnblogs.com/hello-tl/p/7592362.html