大家好,感谢邀请,今天来为大家分享一下全方位正则表达式指南:数字、字符及特殊需求校验大全(转载资料)的问题,以及和的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
来源:http://zxin.cnblogs.com/
本文版权归作者及博客园所有。欢迎转载。但未经作者同意必须保留此声明,并须在文章页面明显位置提供原文链接。否则,保留追究法律责任的权利。
很多对正则表达式不太了解的朋友,在需要使用正则表达式验证数据时,常常会在网上搜索半天,但查到的结果还是不太符合要求。所以最近整理了一些开发中常用的正则表达式,分享在这里。自己留着,也给朋友们参考。
一、校验数字的表达式
1 数字:^[0-9]*$
2 n 位数字:^d{n}$
3 至少n 位数字:^d{n,}$
4 m-n 位数字:^d{m,n}$
5 个以零和非零开头的数字:^(0|[1-9][0-9]*)$
6 个以非零开头且最多保留两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 具有1-2 位小数的正数或负数:^(-)?d+(.d{1,2})?$
8 正数、负数和小数:^(-|+)?d+(.d+)?$
9 保留两位小数的正实数:^[0-9]+(.[0-9]{2})?$
10 个带1~3 位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
11 非零正整数:^[1-9]d*$ 或^([1-9][0-9]*){1,3}$ 或^+?[1-9][0 -9]*$
12 个非零负整数:^-[1-9][]0-9"*$ 或^-[1-9]d*$
13 个非负整数:^d+$ 或^[1-9]d*|0$
14 个非正整数:^-[1-9]d*|0$ 或^((-d+)|(0+))$
15 非负浮点数:^d+(.d+)?$ 或^[1-9]d*.d*|0.d*[1-9]d*| 0? .0+|0$
16 非正浮点数:^((-d+(.d+)?)|(0+(.0+)?))$ 或^(-([1-9]d* . d*|0.d*[1-9]d*))|0?.0+|0$
17 正浮点数:^[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]*))$
18 负浮点数:^-([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]*)))$
19 浮点数:^(-?d+)(.d+)?$ 或^-?([1-9]d*.d*|0.d*[1-9] d*|0?.0+|0)$
二、校验字符的表达式
1 个汉字: ^[u4e00-u9fa5]{0,}$
2 英文和数字:^[A-Za-z0-9]+$ 或^[A-Za-z0-9]{4,40}$
3 长度为3-20的所有字符:^.{3,20}$
4 26个英文字母组成的字符串:^[A-Za-z]+$
5 由26个大写英文字母组成的字符串:^[A-Z]+$
6 26个小写英文字母组成的字符串:^[a-z]+$
7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
8 由数字、26个英文字母或下划线组成的字符串:^w+$ 或^w{3,20}$
9 中文、英文、数字包括下划线:^[u4E00-u9FA5A-Za-z0-9_]+$
10个中文、英文、数字但不包括下划线和其他符号:^[u4E00-u9FA5A-Za-z0-9]+$或^[u4E00-u9FA5A-Za-z0-9]{2,20} $
11 可以输入包含^%",=?$"的字符及其他字符:[^%",=?$x22]+
12 禁止输入含有~的字符:[^~x22]+
三、特殊需求表达式
1 电子邮件地址: ^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9] { 0,62})+/.
3 InternetURL: [a-zA-z]+://[^s]* 或^http://([w-]+.)+[w-]+(/[w-./?%=]*)?$
4 手机号码:^(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}$
5 个电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXX"、"XXXXXXX" 和"XXXXXXXXX):^((d{3,4}-)| d{3.4}-)?d{7,8}$
6 国内电话号码(0511-4405222、021-87888822):d{3}-d{8}|d{4}-d{7}
7 身份证号码(15、18位):^d{15}|d{18}$
8 短ID 号(数字、以x 结尾的字母):^([0-9]){7,18}(x|X)?$ 或^d{8,18}|[0-9x]{8 ,18}|[0-9X]{8,18}?$
9 账号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 密码(以字母开头,长度在6到18之间,只能包含字母、数字和下划线):^[a-zA-Z]w{5,17}$
11 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
12 日期格式:^d{4}-d{1,2}-d{1,2}
13 一年中的12 个月(0109 和112):^(0?[1-9]|1[0-2])$
14 每月31 天(0109 和131):^((0?[1-9])|((1|2)[0-9])|30|31)$
15 资金输入格式:
16 1. 我们可以接受四种货币表示形式:"10000.00"和"10,000.00",以及不带"cents"的"10000"和"10,000":^[1-9][0-9]*$
17 2.这意味着任何不以0开头的数字,但也意味着字符"0"不通过,所以我们使用以下形式:^(0|[1-9][0-9]* )$
18 3. 0 或不以0 开头的数字。我们还可以允许开头有负号:^(0|-?[1-9][0-9]*)$
19 4. 这表示一个0 或一个可能为负数且不以0 开头的数字。让用户以0 开头。还要删除负号,因为钱不能为负数。接下来我们需要添加的是指定可能的小数部分:^[0-9]+(.[0-9]+)?$
20 5. 必须注意的是,小数点后至少应有1 位数字,即“10”。未通过,但通过了"10" 和"10.2":^[0-9]+(.[0 -9]{2})?$
21 6、这样我们就规定小数点后必须有两位小数。如果你觉得太苛刻了,可以这样做:^[0-9]+(.[0-9]{1,2})?$
22 7. 这允许用户仅写入一位小数。接下来我们应该考虑数字中的逗号,我们可以这样做:^[0-9]{1,3}(,[0-9]{3})* (.[0-9]{1,2} )?$
23 8.1 到3 个数字,后跟任意数量的逗号+ 3 个数字,逗号变为可选而不是必需:^([0-9]+|[0-9]{1,3}(,[0- 9] {3})*)(.[0-9]{1,2})?$
24 注:这是最终结果。不要忘记,如果你认为空字符串可以接受,那么"+"可以替换为"*"(奇怪,为什么?)最后,在使用函数时不要忘记删除负数。斜杠,常见错误在这里
25 xml 文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[x|X][m|M][l|L]$
26个汉字正则表达式:[u4e00-u9fa5]
27个双字节字符:[^x00-xff](包括汉字,可以用来计算字符串的长度(一个双字节字符的长度算2,一个ASCII字符的长度算作1))
28 空行的正则表达式:ns*r(可用于删除空行)
29 HTML 标签的正则表达式:(S*?)[^]*.*?|.*? /(网上流传的版本太烂了,上面的只是部分有效,对于复杂的嵌套标签还是无能为力)
30 前导和尾随空白字符的正则表达式:^s*|s*$ 或(^s*)|(s*$) (可用于删除行首和行尾的空白字符(包括空格、制表符、字符、换页符等),非常有用的表达式)
31 腾讯QQ号码:[1-9][0-9]{4,}(腾讯QQ号码从10000开始)
32 中国邮政编码:[1-9]d{5}(?d)(中国邮政编码为6位)
OK,本文到此结束,希望对大家有所帮助。
【全方位正则表达式指南:数字、字符及特殊需求校验大全(转载资料)】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
这篇文章看后直接能解决很多验证问题!
有11位网友表示赞同!
真是太棒了,总算有一个专门汇总常用正则表达式的文档。
有11位网友表示赞同!
平时学习编程经常会遇到需要用正则表达式的场景,这份大全特别实用。
有17位网友表示赞同!
数字、字符的校验需求确实挺常见的,这篇文章把要点都概括清楚了。
有16位网友表示赞同!
一些特殊的需求也包括在内,看来作者很用心整理了。
有16位网友表示赞同!
收藏了!以后碰到正则表达式问题就来这里查找答案。
有7位网友表示赞同!
对于初学者来说,这份大全很有帮助,入门级学习应该可以看懂的内容。
有7位网友表示赞同!
这篇文章把常用的正则表达式都罗列了一遍,很全面的介绍。
有14位网友表示赞同!
感谢作者的分享,解决了我的许多困惑。
有5位网友表示赞同!
这篇整理的文章非常清晰易懂,即使不懂正则表达式的也能慢慢理解
有16位网友表示赞同!
学习正则表达式一直觉得麻烦,现在有了这个大全,估计能学习得更快了
有8位网友表示赞同!
很多时候正则表达式都不太记得,还好有这份大全可以随时查阅!
有9位网友表示赞同!
原来这么多种常用的正则表达式啊,以后可以慢慢去学一学。
有20位网友表示赞同!
分享文章真的很棒,感谢作者的辛苦整理。
有13位网友表示赞同!
对于从事开发工作的来说,这个正则表达式大全必不可少
有10位网友表示赞同!
学习一下正则表达式,能提升编程技能好多!
有18位网友表示赞同!
这份大全涵盖的内容很丰富,能够解决大部分日常开发中遇到的问题
有20位网友表示赞同!
以后遇到正则表达式的难题可以参考这篇文章看看解决方案。
有9位网友表示赞同!
分享这样的宝藏文,值得点赞!
有14位网友表示赞同!
学习编程真是太难了,幸好有了这份大全可以帮助解题!
有11位网友表示赞同!