收集整理一些PHP相关的正则表达式
前端部位时间间隔在设计规划一些的项目流程的之后,这当中使用到了很多的正则展现式,不管PHP端最好界面JS端都作过很多的正则校验,有点正则对比惯用,同时记不上场所去写甚至去查搜狗搜索任何的都很是费劲,干脆你为你作过一些PHP正则展现式的特别整理,的时候多用到能可以直接过来的英文在等你查阅则是。并说去句,JS新风系统的正则展现式与PHP差不多,同时写法上稍有什么差别,望来旅游的者需要根据你的的项目流程实际具体情况具体情况来降重真切更适合你的正则展现式。
一、校检罗马数字的理解式
金额:^[0-9]*$
n位的数码:^\d{n}$
最少n位的数字9:^\d{n,}$
m-n位的数据:^\d{m,n}$
零和非零打头的小数:^(0|[1-9][0-9]*)$
非零开头结尾的更多带两名小数的数字6:^([1-9][0-9]*)+(.[0-9]{1,2})?$
带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
有三位小数的正实数:^[0-9]+(.[0-9]{2})?$
有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
非零的负整数:^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$
非负整数:^\d+$ 或 ^[1-9]\d*|0$
非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
二、验校字符串的表答式
单字:^[\u4e00-\u9fa5]{0,}$
英语和罗马数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
直径为3-20的很多字符串:^.{3,20}$
由36用英语字母组合组合的字段串:^[A-Za-z]+$
由二十二个因为大写因为字母a组建的字段串:^[A-Z]+$
由二十二个小写符号用英语符号构成的字段串:^[a-z]+$
由加数和二十六个英语怎么说字母组合结构的字串串:^[A-Za-z0-9]+$
由阿拉伯数字、二十二个英文版字母和下划线组成的的空格符串:^\w+$ 或 ^\w{3,20}$
日语版、日语、数字5涵盖下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
中文字幕、英文版、数字6但不例如下划线等英文符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
能够 显示含^%&’,;=?$\”等空格符:[^%&',;=?$\x22]+
请勿输人具有~的字段:[^~\x22]+
三、特殊化具体需求表现式
Email门店地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名服务器:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
InternetURL:[a-zA-z]+://[^\s]* 或 ^//([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
移动号码查询:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
座机号编码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^($$\d{3,4}-)|\d{3.4}-)?\d{7,8}$
目前中国手机 账号(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
双重身份正号(15位、18五位数字):^\d{15}|\d{18}$
短个人身份证照片数字5(数字5、英文字母x结论):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
账号可不可以属于合法(英文字母a開頭,能够5-16字节,能够英文字母a自然数下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
登陆密码(以字母aa上述,尺寸在6~18之間,只好分为字母aa、阿拉伯数字和下划线):^[a-zA-Z]\w{5,17}$
强口令(需包涵程度写英文符号和数字化的组合起来,没有操作特别空字符,间距在8-10范围内):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
日期英文文件类型:^\d{4}-\d{1,2}-\d{1,2}
三年的1两个月(01~09和1~12):^(0?[1-9]|1[0-2])$
一种月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
钱的填写格局:
有六种钱的说形态大家是可以认同:”10000.00″ 和 “10,000.00″, 和没能 “分” 的 “10000″ 和 “10,000″:^[1-9][0-9]*$
这说多种两个当以0结尾的数字1,而且,这也暗示着着两个标识符”0″不应用,于是公司应用现在的手段:^(0|[1-9][0-9]*)$
1个0并且1个不是0上述的数字6.你们还能够能够上述有1个负号:^(0|-?[1-9][0-9]*)$
这写出两个0或者是两个能够为负的上述不為0的数字9.让大家以0上述OK了.把负号的也取掉,毕竟钱总并不能是负的吧.中间他们要加的是详细说明能够的小数这部分:^[0-9]+(.[0-9]+)?$
肯定说明怎么写的是,小数点后来必须大概有1数字,所以咧”10.”就是采用的,仅是 “10″ 和 “10.2″ 是采用的:^[0-9]+(.[0-9]{2})?$
其实我们都法律规定小数点之后必要有某位,若是你来说太苛求了,就可以其实:^[0-9]+(.[0-9]{1,2})?$
如此一来就能消费者只写有一位小数。后面 .我该选择小数中的单引号了,.我能如此一来:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
1到3位数字,后方围着同样个 单引号+3位数字,单引号变成了供选择,而并不是需求:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
提示:这即使终极結果了,别不知道”+”就就能够用”*”充当。若是你都觉得空字串串也就就能够学习时(稀奇古怪,为那些?)最后一个,别不知道会用数学函数时清除清除那些反斜杠,正常的错识都将在里
xml信息:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
2英文字段的正则表述式:[\u4e00-\u9fa5]
双字节空c语言空格符串:[^\x00-\xff] (包含中国汉字其中,应该用于计算方式空c语言空格符串串的时间(另一个双字节空c语言空格符串时间计2,ASCII空c语言空格符串计1))
空缺行的正则传达式:\n\s*\r (能用卸载空缺行)
HTML标示的正则表达方式式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (网络上传播的型号太不好,上文这一也只要能这部分,对待比较复杂的嵌套标示仍旧无能为力)
首尾白页空标识符的正则表达出出来式:^\s*|\s*$或(^\s*)|(\s*$) (是可以能够满足册除行首行尾的白页空标识符(以及单引号、做表符、换页符孩他),如此有效的表达出出来式)
腾讯游戏公司QQ号:[1-9][0-9]{4,} (腾讯游戏公司QQ号从10000刚开始)
全球邮政快递快递标识号:[1-9]\d{5}(?!\d) (全球邮政快递快递标识号为6四位数字)
IP具体门店地址:\d+\.\d+\.\d+\.\d+ (提炼IP具体门店地址时有)
IP联系地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
这儿主要包括的一定绝大部分上是相对是比较全的了,假设不自觉忘记了一些或是少了一些相对是比较适用的,请批评指正男同学推出并增加,将这家库做大,更方便大伙练习、食用。