常用正则表达式合集

抽空整理了下常见的正则表达式,帮助各位高效码代码,节省编码时间。



简单的数字匹配

//整数或者小数
^[0-9]+\.{0,1}[0-9]{0,2}$

//只能输入数字
^[0-9]*$

//只能输入n位的数字
^\d{n}$

//只能输入至少n位的数字
^\d{n,}$

//只能输入m~n位的数字
^\d{m,n}$

//只能输入零和非零开头的数字
^(0|[1-9][0-9]*)$

//只能输入有两位小数的正实数
^[0-9]+(.[0-9]{2})?$

//只能输入有1~3位小数的正实数
^[0-9]+(.[0-9]{1,3})?$

//只能输入非零的正整数
^\+?[1-9][0-9]*$

//只能输入非零的负整数
^\-[1-9][]0-9*$

字符串匹配

//只能输入长度为3的字符
^.{3}$

//只能输入由26个英文字母组成的字符串
^[A-Za-z]+$

//只能输入由26个大写英文字母组成的字符串
^[A-Z]+$

//只能输入由26个小写英文字母组成的字符串
^[a-z]+$

//只能输入由数字和26个英文字母组成的字符串
^[A-Za-z0-9]+$

//只能输入由数字、26个英文字母或者下划线组成的字符串
^\w+$


汉字匹配

//匹配中文字符的正则表达式
[\u4e00-\u9fa5]

//匹配双字节字符(包括汉字在内)
[^\x00-\xff]

//匹配空行的正则表达式
\n[\s| ]*\r

//匹配首尾空格的正则表达式
(^\s*)|(\s*$)
^\s*|\s*$

特定数字匹配

//匹配正整数
^[1-9]\d*$

//匹配负整数
^-[1-9]\d*$

//匹配整数
^-?[1-9]\d*$

//匹配非负整数(正整数 + 0)
^[1-9]\d*|0$

//匹配非正整数(负整数 + 0)
^-[1-9]\d*|0$

//匹配正浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$

//匹配负浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$

//匹配浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

//匹配非负浮点数(正浮点数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

//匹配非正浮点数(负浮点数 + 0)s
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

特定字符串匹配

//匹配由26个英文字母组成的字符串
^[A-Za-z]+$

//匹配由26个英文字母的大写组成的字符串
^[A-Z]+$

//匹配由26个英文字母的小写组成的字符串
^[a-z]+$

//匹配由数字和26个英文字母组成的字符串
^[A-Za-z0-9]+$

//匹配由数字、26个英文字母或者下划线组成的字符串
^\w+$

其他匹配

//校验密码强度,例如密码的强度为:包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。
^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

//校验中文字符串
^[\\u4e00-\\u9fa5]{0,}$

//由数字、26个英文字母或下划线组成的字符串
^\\w+$

//判断IE的版本
^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$

//文件路径及扩展名校验,验证windows下文件路径和扩展名(下面的例子中为.txt文件)
^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$

//提取网页颜色代码,/有时需要抽取网页中的颜色代码,可以使用下面的表达式。
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

//提取网页图片
\\< *[img][^\\>]*[src] *= *[\\"\\']{0,1}([^\\"\\'\\ >]*)

//提取页面超链接
(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^"]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>

//查找CSS属性
^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}

//抽取注释
<!--(.*?)-->

//匹配HTML标签
<(\S*?)[^>]*>.*?|<.*? />
<(.*)>(.*)<\/(.*)>|<(.*)\/>
[\\^'">\\s]+))?)+\\s*|\\s*)\\/?>
<\\/?\\w+((\\s+\\w+(\\s*=\\s*(?:".*?"|'.*?'|

正则表达式常用案例

//验证用户密码:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
^[a-zA-Z]\w{5,17}$

//匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线),表单验证时很实用
^[a-zA-Z][a-zA-Z0-9_]{4,15}$

//校验金额,精确到2位小数。
^[0-9]+(.[0-9]{2})?$

//验证Email地址
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?

//匹配腾讯QQ号,腾讯QQ号从10000开始
[1-9][0-9]{4,}

//匹配中国邮政编码,中国邮政编码为6位数字
[1-9]\d{5}(?!\d)

//验证电话号码,格式为: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}

//校验手机号,以 13、15、18开头的手机号正则表达式。(可根据目前国内收集号扩展前两位开头号码)
^(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}$

//验证身份证号(15位或18位数字)
^\d{15}|\d{18}$
^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$
^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$

//验证一个月的31天,格式为;01~09和1~31
^((0?[1-9])|((1|2)[0-9])|30|31)$

//验证一年的12个月,格式为:01~09和1~12
^(0?[1-9]|1[0-2])$

//校验日期:“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

//时间正则案例,简单的日期判断(YYYY/MM/DD)
^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$

//演化的日期判断(YYYY/MM/DD| YY/MM/DD)
^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$

//加入闰年的判断的
^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$

//验证是否含有^%&',;=?$\等字符
[^%&',;=?$\x22]+

//只能输入汉字
^[\u4e00-\u9fa5]{0,}$

//验证Internet URL
[a-zA-z]+://[^\s]*
^[http|https]://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

//检查URL的前缀,应用开发中很多时候需要区分请求是HTTPS还是HTTP,通过下面的表达式可以取出一个url的前缀然后再逻辑判断。
if (!s.match(/^[a-zA-Z]+:\\/\\//)) {
    s = 'http://' + s;
}

//提取URL链接,下面的这个表达式可以筛选出一段文本中的URL。
^(f|ht){1}(tp|tps):\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- ./?%&=]*)?

//匹配ip地址,提取ip地址时有用
\d+\.\d+\.\d+\.\d+

//校验IP-v4地址
\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b

//校验IP-v6地址
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值