正则表达式
一些常用的正则表达式,更多可参考
手机号码
export const phoneRegex = /^(13[0-9]|14[5|7|9]|15[0|1|2|3|5|6|7|8|9]|16[6]|17[0|1|2|3|5|6|7|8]|18[0-9]|19[8|9])\d{8}$/;
export const hidePhoneRegex = /^\d{3}\*{4}\d{4}$/;
// 手机号(严谨), 根据工信部2019年最新公布的手机号段
/^1((3[\d])|(4[5,6,7,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[\d])|(9[1,8,9]))\d{8}$/
// 手机号(宽松), 只要是13,14,15,16,17,18,19开头即可
/^1[3-9]\d{9}$/
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
是否为 url
const reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/;
const isUrl = path => {
return reg.test(path);
};
1
2
3
4
5
2
3
4
5
时间
// 24 小时制
/^((?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$)/
// 12 小时制
/^(1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/
1
2
3
4
5
2
3
4
5
数字/货币金额(支持负数、千分位分隔符)
/(^[-]?[1-9]\d{0,2}($|(,\d{3})*($|(\.\d{1,2}$))))|((^[0](\.\d{1,2})?)|(^[-][0]\.\d{1,2}))$/;
1
银行卡号(16 或 19 位)
/^([1-9]{1})(\d{15}|\d{18})$/;
1
中文姓名
/^([\u4e00-\u9fa5·]{2,16})$/;
1
英文姓名
/(^[a-zA-Z]{1}[a-zA-Z\s]{0,20}[a-zA-Z]{1}$)/;
1
车牌号
// 新能源车牌号
/[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$/
// 非新能源车牌号
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
// 车牌号(新能源+非新能源)
/^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-HJ-NP-Z]{1}(([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领 A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9 挂学警港澳]{1})$/
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
email 地址
/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
1
身份证
// 一代身份证号(15位数字)
/^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$/
// 二代身份证号(18位数字),最后一位是校验位,可能为数字或字符X
/^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$/
// 身份证号, 支持1/2代(15位/18位数字)
/(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
帐号
// 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线组合
/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/
// 用户名正则,4到16位(字母,数字,下划线,减号)
/^[a-zA-Z0-9_-]{4,16}$/
1
2
3
4
5
2
3
4
5
密码
/^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
1