左邻前端工具集
为什么需要工具集?
在底层将业务模块经常使用的工具统一,有以下优势:
- 避免相同方法重复实现
- 避免重复踩坑,便于统一优化
- 将工具与业务模块分离,减小打包大小,加快渲染
regexps 正则表达式归类
收集各类正则表达式,供各业务使用,便于统一修改维护。
使用示例
; const phone = '15875894586';const isValid = regexpsphoneNumber;if isValid //...
目前,regexps
对象中可使用的正则如下:
属性名 | 正则表达式 | 备注 |
---|---|---|
phoneNumber |
/^((12[0-9])|(13[0-9])|(14[5-9])|(15[012356789])|(16[0-9])|(17[0-9])|(18[0-9])|(19[89]))\d{8}$/ | 12开头的所有号码段(公司内用于测试的号码段);13开头的所有号码段;14开头的有145、146、147、148、149;15开头的除了154的都可以;16开头的所有号码段;17开头的所有号码段;18开头的所有号码段;19开头的有198、199 |
date |
/^(?:(?!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'格式,并且考虑了平闰年 |
date2 |
/^(?:(?!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)0229)$/ | 日期, 'yyyymmdd'格式, 考虑了平闰年 |
idNo |
/^[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)$/ | 18位身份证号校验 |
idNo_15 |
/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/ | 15位身份证号校验 |
ipv4 |
/^(?:(?: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]?)$/ | ipv4地址校验 |
ipv6 |
/^(([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]))$/ | ipv6地址校验 |
email |
/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(.[a-zA-Z0-9-]+)*.[a-zA-Z0-9]{2,6}$/ | 邮箱地址校验,规则如下:1. @之前必须有内容且只能是字母(大小写)、数字、下划线(_)、减号(-)、点(.); 2. @和最后一个点(.)之间必须有内容且只能是字母(大小写)、数字、点(.)、减号(-),且两个点不能挨着 3. 最后一个点(.)之后必须有内容且内容只能是字母(大小写)、数字且长度为大于等于2个字节,小于等于6个字节 |
idNo2 |
/^(([16][1-5])|([24][1-3])|(3[1-6])|(5[0-4])|(71)|(8[12]))([0-7][0-9])\d{2}(?:(?!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)0229)\d{3}([0-9]|X)$/ | 超级严格的身份证号校验正则,尽量贴合身份证号规则 |