转载-常见正则表达式合集

转载自:常见正则表达式合集

为了避免用户胡乱输入就通过验证,很多时候我们都会采用正则表达式来验证一下用户输入的信息是否符合规范。这部分的内容基本上是在网上收集来的,这里跟大家一起分享一下,有需要的可以记在自己的有道云笔记里面。

如何验证?

验证的方式当然是很多了,这里推荐采用test()方法来验证。

1
2
3
4
5
6
7
let isTrue = RegExpObject.test(string);// RegExpObject为正则 string是要检测的字符串
// 如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
if (isTrue){
//验证成功 do something
}elseP{
//验证失败
}

身份证号码正则表达式:

第一代身份证只有 15 位数,第二代身份证有 18 位数,各位按照需求来选择表达式。

1
2
3
4
//第二代身份证号码正则
let isTrue = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
//第一代身份证正则表达式(15位)
let isTrue = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;

手机号码正则表达式:

时间截止为:2018 年 1 月 11 日

  • 移动号段:134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198
  • 联通号段:130 131 132 145 146 155 156 166 171 175 176 185 186
  • 电信号段:133 149 153 173 174 177 180 181 189 199
  • 虚拟运营商:170
1
let isTrue = /^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/;

邮箱正则表达式:

1
let isTrue = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;

用户名正则:

1
2
//用户名正则,4到16位(字母,数字,下划线,减号)
let isTrue = /^[a-zA-Z0-9_-]{4,16}$/;

密码正则:

密码正则,以字母开头,长度在 6~18 之间,只能包含字母、数字和下划线

1
let isTrue =^[a-zA-Z]\w{5,17}$;

强密码正则,最少 6 位,包括至少 1 个大写字母,1 个小写字母,1 个数字,1 个特殊字符

1
let isTrue = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;

QQ 号码正则:

1
let isTrue = /^[1-9][0-9]{4,10}$/;

微信号码正则:

1
2
//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线
let isTrue = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;

特殊字符检测正则:

1
let isTrue = /["'<>%;)(&+]+-!!@#$~/;

域名正则:

1
let isTrue=[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?;

车牌号码正则:

1
let isTrue = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;

包含中文正则:

1
2
let isTrue = /[\u4E00-\u9FA5]/;
//这个可以用于验证用户的真实姓名。

护照正则:

1
let isTrue = /^(P\d{7}|G\d{7,8}|TH\d{7,8}|S\d{7,8}|A\d{7,8}|L\d{7,8}|\d{9}|D\d+|1[4,5]\d{7})$/;

固定电话正则:

1
let isTrue=(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8};

IP 地址正则:

1
let isTrue=\d+\.\d+\.\d+\.\d+;

邮政编码正则:

1
let isTrue=[1-9]{1}(\d+){5};

经纬度正则:

1
2
3
4
//经度正则
let isTrue = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;
//纬度正则
let isTrue = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;