文章来源: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

PHP:车牌照合法性的更多相关文章

  1. 表单生成器(Form Builder)之伪造表单数据番外篇——随机车辆牌照

    前几天记录了一下表单生成器(Form Builder)之表单数据存储结构mongodb篇,之后便想着伪造一些数据.为什么要伪造数据呢?说来惭愧,因为拖拉拽设计表单以及表单对应的列表的PC端和移动端该显 ...

  2. 数位dp整理 && 例题HDU - 2089 不要62 && 例题 HDU - 3555 Bomb

    数位dp: 数位dp是一种计数用的dp,一般就是要统计一个区间[li,ri]内满足一些条件数的个数.所谓数位dp,字面意思就是在数位上进行dp.数位的含义:一个数有个位.十位.百位.千位......数 ...

  3. HTML基本组成结构与标签的认识

    HTML基本组成结构与标签 其实组成结构用一张图来简单了解下如下 目前一般网站的结构是会如此不是很清晰简单 先来说说header头部 这样是不是更加清楚了 导航栏是引导用户查看网站内容的快捷入口,打个 ...

  4. HDU2089 不要62[数位DP]

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. hdu2089 数位dp

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  6. [HDU2089]不要62

    [HDU2089]不要62 试题描述 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就 ...

  7. 数位DP HDU2089

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. [ACM_水题] 不要62(hdu oj 2089, 不含62和4的数字统计)

    Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来, ...

  9. 数位类统计问题--数位DP

    有一类与数位有关的区间统计问题.这类问题往往具有比较浓厚的数学味道,无法暴力求解,需要在数位上进行递推等操作.这类问题往往需要一些预处理,这就用到了数位DP. 本文地址:http://www.cnbl ...

随机推荐

  1. bzoj 1742: [Usaco2005 nov]Grazing on the Run 边跑边吃草【区间dp】

    挺好的区间dp,状态设计很好玩 一开始按套路设f[i][j],g[i][j]为吃完(i,j)区间站在i/j的最小腐败值,后来发现这样并不能保证最优 实际上是设f[i][j],g[i][j]为从i开始吃 ...

  2. [POI2009]救火站Gas

    Description 给你一棵树,现在要建立一些消防站,有以下要求: 1. 消防站要建立在节点上,每个节点可能建立不只一个消防站. 2. 每个节点应该被一个消防站管理,这个消防站不一定建立在该节点上 ...

  3. 积分图像的应用(一):局部标准差 分类: 图像处理 Matlab 2015-06-06 13:31 137人阅读 评论(0) 收藏

    局部标准差在图像处理邻域具有广泛的应用,但是直接计算非常耗时,本文利用积分图像对局部标准差的计算进行加速. 局部标准差: 标准差定义如下(采用统计学中的定义,分母为): 其中. 为了计算图像的局部标准 ...

  4. poj1781In Danger(约瑟夫) 问题

    链接 之前队内赛中的一道题目 当时怎么想也没想到,就一直放到了今天,刚才看另一题的讲解突然看到时拿这个题作为引子来讲的,就仔细看了下. 参考<<具体数学>> p7. Josep ...

  5. [转]C#Linq中的Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods,skip,take,takewhile,skipwhile,编译查询等

    本文转自:http://www.cnblogs.com/suizhikuo/p/3791799.html 我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Inte ...

  6. 5 月编程语言排行榜:Java第一,R跌出Top20

    我们都知道,最近,TIOBE 发布了 5 月份编程语言排行榜.其中,前三名依然健稳不变,他们分别是 Java.C.C++,第四则为: Python ,第五则为 VB .NET. 下面两张图,我们可以看 ...

  7. Java多线程——线程的优先级和生命周期

    Java多线程——线程的优先级和生命周期 摘要:本文主要介绍了线程的优先级以及线程有哪些生命周期. 部分内容来自以下博客: https://www.cnblogs.com/sunddenly/p/41 ...

  8. Java多线程——进程和线程

    Java多线程——进程和线程 摘要:本文主要解释在Java这门编程语言中,什么是进程,什么是线程,以及二者之间的关系. 部分内容来自以下博客: https://www.cnblogs.com/dolp ...

  9. ScrollView属性

    1.文本内容过长,一个屏幕显示不下,这时候就把显示文本的 TextView包裹在ScrollView里面,可以做到滚动下滑查看的功能 2.隐藏滚动条 标签属性设置android:scrollbars= ...

  10. TCP/UDP套接字 java socket编程实例

    网络协议七层结构: 什么是Socket? socket(套接字)是两个程序之间通过双向信道进行数据交换的端,可以理解为接口.使用socket编程也称为网络编程,socket只是接口并不是网络通信协议. ...