1、手机号码(国内)
var reg = /^1{1}[3-9]{1}[\d]{9}$/;
** 目前国内三大运营商发放的手机号码多是以13、14、15、16、17、18、19开头,而手机号码的第3位(0-9均可)。可参考找号网、百度百科-手机号码资料(2018-03)
2、固定电话(国内)
var reg = /^0[1-9][\d]{1,2}\-\d{7,8}$/
** 国内区号参考:百度百科-电话区号(2018-03)。
3、手机号或电话号码(国内)
var reg = /^1{1}[3-9]{1}[\d]{9}|0[1-9][\d]{1,2}\-\d{7,8}$/
** 手机号码和固定座机验证二合一。例如:150100861110 010-10086110
3、QQ账号(腾讯)
var reg = /^[1-9][0-9]{4,}$/
** QQ号码是以10000为起始值的,目前已经发放到以3开头的号码,但QQ号码除了一些靓号以外,本身的价值会越来越低。
4、邮箱账号
var reg = /^[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?$/
** 邮箱账号格式:[email protected]。user表示收件人的账号名称,可以是包含字母、数字、符号在内的不限位数的字符串,mail.server.name表示电子邮箱服务器的地址,可以是域名或者十进制的IP地址。详情参考:百度百科-电子邮件地址。
5、用户名或昵称
(1)用户名规则1(必须包含英文字母,可以使用任意的特殊非空白字符,长度在4-20位之间)
var reg = /^(?=.*[a-zA-Z])\S{4,20}$/
(2)用户名规则2(可以包含英文字母、汉字、任意的特殊非空白字符、或者它们三者的组合,长度在2-20位之间)
var reg = /^[a-zA-Z\\u4e00-\\u9fa5_\S]{2,20}$/
6、密码
(1)密码规则1(可以由8-20位的数字,或英文字母,或下划线组成)
var reg = /^\w{8,20}$/
(2)密码规则3(必须包含数字和英文字母的组合,不可以使用除下划线以外的任何特殊符号,长度为8-20位)
var reg = /^(?=.*\d)(?=.*[a-zA-Z])\w{8,20}$/
(3)密码规则4(必须包含数字和英文字母的组合,可以使用任意的特殊非空白字符,长度为8-20位)
var reg = /^(?=.*\d)(?=.*[a-zA-Z])\S{8,20}$/
(4)密码规则5(必须包含数字、小写英文字母、大写英文字母,可以使用任意的特殊非空白字符,长度为8-20位)
var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\S{8,20}$/
(6)密码规则5(必须包含数字、小写英文字母、大写英文字母、特殊符号,长度为8-20位)
var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@#\$%\^&\*\(\)\-+_=`\{\}\{\}:;"'\|\\,\.\?/><·~!¥%()【】;:“”‘’、《》,。?])\S{8,20}$/
7、URL链接
var reg = /^[a-zA-Z]+://((((0{1}|1{1}[0-9]{0,2}|2{1}[0-5]{0,2}){1}\.{1}){3}(0{1}|1{1}[0-9]{0,2}|2{1}[0-5]{0,2}){1}(:{1}\d{1,})?)|(\w+.{1}){3,})(/{1}.{1,})*$/
** URL格式:协议://服务器名称或IP地址/路径或文件名?查询字符串。可以识别诸如:http://192.168.0.10:8800/column?pagenum=1、https://www.baidu.com/#/column_01?pagenum=1&pagesize=10、ftp://192.168.0.10/index.html,而类似http://192.168.0.259.325绝对不会让通过的。参考链接:百度百科-URL。
8、IPv4地址
var reg = /^((0|1[0-9]{0,2}|2[0-5]{0,2})\.){3}(0|1[0-9]{0,2}|2[0-5]{0,2})$/
** IP地址,例如:0.0.0.0、1.1.1.1、127.0.0.0,、192.168.0.1、255.255.255等等。参考链接:百度百科-IPv4
9、IPv6地址
(1)冒分十六进制表示法
var reg = /^([\dA-F]{1,4}:){7}([\dA-F]{1,4})$/
** 这种格式易读,但不易书写。例如:0:0:0:0:0:0:0:0、ABCD:1526:4856:12359:A985:9087:DF45:1的等等。
(2)0位压缩表示法(尚未写出可以匹配的正则表达式)
** 这种格式易书写,但不易读。例如:
0:0:0:0:0:0:0:0 => ::
0:0:1:1:1:1:1:1 => ::1:1:1:1:1:1
10、日期
(1)日期验证方式1:
var reg1 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
var reg2 = /^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$/
** 诸如yyyy-mm-dd、yyyy-mm-d、yyyy-m-dd、yyyy-m-d、yyyy/mm/dd、yyyy/mm-d、yyyy/m/dd、yyyy/m/d、yyyy.mm.dd、yyyy.mm.d、yyyy.m.dd、yyyy.m.d格式可以被匹配。但是如2018-12-50这类错误也会被匹配。
(2)日期验证方式2:
var reg3 = /^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))$/
** 日期格式支持较为单一,仅支持yyyy-mm-dd这种格式。相比方式1,类似2018-05-40这一类错误将不再被匹配,类似2017-5-1也不再被匹配。另外有bug:无论平年还是闰年都将匹配不到02-29。
(3)日期验证方式3:
var reg = /^(?:(?!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格式,考虑平闰年,完全能正确匹配。
11、中文
var reg = /^[\u4e00-\u9fa5]{0,}$/
** 验证中文字符串。
12、身份证(18位)
var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X|x)$/
参考网站:菜鸟教程-正则表达式在线测试
开源社区-正则表达式在线测试工具