自我记录js正则
一、数字相关
- 只有数字:
/^[0-9]*$/
或/^\d{1,}$/
- 整数:
/^-?[0-9]\d*$/
- 正整数:
/^\+?[1-9]\d*$/
- 非正整数:
/^-[1-9]\d*|0$/
- 负整数:
/^-[1-9]\d*$/
- 非负整数:
/^\d+$/
- 浮点数:
/^(-?\d+)(\.\d+)?$/
- 正浮点数:
/^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/
- 负浮点数:
/^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)/
- 小数:
/^-?\d+\.\d+$/
- 正数/负数/小数:
/^(\-|\+)?\d+(\.\d+)?$/
- 正实数保留小数点后 2 位:
/^[0-9]+(.[0-9]{2})?$/
- 正实数保留小数点后 1 到 3 位:
/^[0-9]+(.[0-9]{1,3})?$/
- n 位数字:
/^\d{n}$/
- 至少 n 位数字:
/^\d{n,}$/
- m 至 n 位的数字:
/^\d{m,n}$/
- 数字和字母至少包含其一:
/^[A-Za-z0-9]+$/
- 必须包含数字和字母:
/^(?=.*[a-zA-Z])(?=.*\d).+$/
二、字符相关
- m 至 n 位的字符:
/^.{3,20}$/
- 英文字母字符:
/^[A-Za-z]+$/
- 大写英文字母字符:
/^[A-Z]+$/
- 小写英文字母字符:
/^[a-z]+$/
- 汉字:
/^[\u4e00-\u9fa5]{0,}$/
- 汉字、英文、数字、下划线至少其一:
/^[\u4E00-\u9FA5A-Za-z0-9_]+$/
三、时间相关
- 24小时制时间(HH:mm:ss):
/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/
- 12小时制时间(hh:mm:ss):
/^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/
- 24小时制时间(HHmmss):
/([0-1]?[0-9]|2[0-3])([0-5][0-9])([0-5][0-9])$/
- 日期(yyyy-MM-dd,如 2222-01-01,年份必为4位):
/^\d{4}-\d{1,2}-\d{1,2}/
- 日期(yyyyMMdd,如 20220202):
/^((([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]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229))$/
- 日期+时间(YYYYMMDD HH:mm:ss):
/^\d{4}([/:-\S])(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31) (?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/
四、号码相关
- 手机号(以 1 开头):
/^(?:(?:\+|00)86)?1\d{10}$/
- 手机号(以 13 至19 开头):
/^(?:(?:\+|00)86)?1[3-9]\d{9}$/
- 国内固话号码:
/\d{3}-\d{8}|\d{4}-\d{7}/
- 邮箱号:
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
- 邮政编码:
/[1-9]\d{5}(?!\d)/
- 身份证号:
/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/
- 银行卡号(公、私账户):
/^[1-9]\d{9,29}$/
- 车牌号:
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/
- 合法账号1(字母开头,5-16位,允许字母数字下划线):
/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/
- 合法账号2(4-16位,允许字母,数字,下划线,减号):
/^[a-zA-Z0-9_-]{4,16}$/
- 强密码1(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):
/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/
- 强密码2(必须包含字母、数字、特殊字符:**@#$%^& `~()-+=* ):
/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_!@#$%^&* ~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^& *~()-+=]+$)(?![0-9\W_!@#$%^&* ~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*~()-+=]/
- 网址:
/^(((ht|f)tps?):\/\/)?(^!@#$%^&*?.\s-?\.)+[a-z]{2,6}\/?/
- 网址带端口号:
/^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/