文章来源: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 3677: [Apio2014]连珠线【树形dp】

    参考:http://www.cnblogs.com/mmlz/p/4456547.html 枚举根,然后做树形dp,设f[i][1]为i是蓝线中点(蓝线一定是父子孙三代),f[i][0]为不是,转移很 ...

  2. bzoj 4785: [Zjoi2017]树状数组【树套树】

    参考:https://www.cnblogs.com/ljh2000-jump/p/6686960.html 由于操作反过来了,所以显然树状数组维护后缀和,所以本来想查询(1,r)-(1,l-1),现 ...

  3. 【已解决】python中文字符乱码(GB2312,GBK,GB18030相关的问题)

      http://againinput4.blog.163.com/blog/static/1727994912011111011432810/ [已解决]python中文字符乱码(GB2312,GB ...

  4. [POI2010]Antisymmetry

    Description 对于一个01字符串,如果将这个字符串0和1取反后,再将整个串反过来和原串一样,就称作"反对称"字符串.比如00001111和010101就是反对称的,100 ...

  5. Frequency of String CodeForces - 963D

    http://codeforces.com/contest/963/problem/D 题解:https://www.cnblogs.com/Blue233333/p/8881614.html 记M为 ...

  6. FileStream和BinaryReader,BinaryWriter,StreamReader,StreamWriter的区别

    FileStream对于在文件系统上读取和写入文件非常有用,FileStream缓存输入和输出,以获得更好的性能.FileStream对象表示在磁盘或网络路径上指向文件的流.这个类提供了在文件中读写字 ...

  7. ORACLE数据库的备份分为物理备份和逻辑备份两种。

    物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带.可以使用 Oracle 的恢复管理器(Recovery Manager,RMAN)或操作系统命令进行数据库的物 ...

  8. WCF中的异步实现

    对于WCF中通讯的双方来说,客户端可以异步的调用服务:服务端对服务也能以异步的方式实现. 目录: 1.WCF客户端异步调用服务 2.服务端的异步实现 WCF客户端异步调用服务主要通过生成异步的代理类, ...

  9. css中display设置为table、table-row、table-cell后的作用及其注意点

    html: <div class="table"> <div class="row"> <div class="cell ...

  10. 第一次阅读作业 xinzcover

    ---恢复内容开始--- 第一次阅读和准备作业 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1 这个作 ...