1,手机号正则
获取最新运营商手机号码段(2019-04)
/** * 正则:手机号 *移动: 134 135 136 137 138 139 147(上网卡) 150 151 152 157 158 159 165 172 178(4G) 182 183 184 187 188 1440(物联网) 148(物联网) 198 *联通: 130 131 132 145(上网卡) 155 156 171 175 176(4G) 185 186 146(物联网) 166 *电信: 133 149 153 173 174 177(4G) 180 181 189 191 1410(物联网) 199 *虚拟运营商:170,171**/
根据上述手机号总结匹配规律如下:
13(0~9),14(1,4~9),15(0~3,5~9),16(5,6),17(0,1,2,3,4,5,6,7,8),18(0~9),19(1,8,9)
可以写出如下正则:
1) 严格手机号正则
/^1([3|8]\d|4[1,4-9]|5[0-3,5-9]|6[5,6]|7[0-8]|9[1,8,9])\d{8}$/
2) 宽容手机号正则:以1开头,3~9网段内十一位数字组合
/^1[3-9]\d{9}$/
3) 基本手机位数匹配,以1开头的十一位数字组合
/^1\d{10}$/
2,两位小数位正则
两位小数格式注意点:
1) [整数位]
2) [整数位][.][小数位]
整数位:0开头,只能出现一次
非0开头,出现1+次
小数位:0~2位
3) [.] : 有小数位则必须出现,否则不出现
得到结果规律:
[正整数](.小数位)? || 0(.小数位)?
=>(正整数 | 0) (.小数位)?
因此可以写出如下正则表达式:
/^(([1-9]\d*)|0)(\.\d{1,2})?$/
3,密码正则
数字 \d [0-9]
字母 [a-zA-Z]
数字,字母,下划线 \w
密码简单规律枚举
1)字母,数字,或者下划线的6~18位密码
/^\w{6,18}$/
2)以字母开头,由字母,数字,或者下划线的6~18位密码
/^[a-zA-Z]\w{5,17}$/
3)字母数字组合的6~18位密码(包含字母,数字的组合)
/^(?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9]{8,16}$/
使用到选择符,或者说预判符.仅仅匹配,但是不获取匹配结果.
?:,?=,?!
/**非获取匹配**/
(?:pattern) |
匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。 |
(?=pattern) |
正向肯定预查(look ahead positive assert),在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,"Windows(?=95|98|NT|2000)"能匹配"Windows2000"中的"Windows",但不能匹配"Windows3.1"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
(?!pattern) |
正向否定预查(negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如"Windows(?!95|98|NT|2000)"能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2000"中的"Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
4)大小写字母数字组合的6~18位密码(包含大写字母,小写字母,数字的组合)
同3)
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,16}$/
4,日期格式
日期格式 yyyy-MM-dd
/\d{4}-\d{1,2}-\d{1,2}/
5,固定格式字符串[包含及次数]
1) 判断某string中是否包含特定格式数据,如日期
var str = '2019-04-08是周一'; var patt = /\d{4}-\d{1,2}-\d{1,2}/; var res =str.match(patt) // res: ["2019-04-08", index: 0, input: "2019-04-08是周一", groups: undefined]
2)判断某string中包含特定格式数据的次数,如日期
来源:https://www.cnblogs.com/perallina/p/10665955.html