前端开发中常用到的正则表达式

107 阅读2分钟

校验数字的表达式

数字

^[0-9]$

n位的数字

^\d{n}$

至少n位的数字

^\d{n,}$

m-n位的数字

^\d{m,n}$

零和非零开头的数字

^(0|[1-9][0-9]*)$

非零开头的最多带两位小数的数字

^([1-9][0-9]*)+(.[0-9]{1,2})?$

带1-2位小数的正数或负数

^(\-)?\d+(\.\d{1,2})?$

正数、负数、和小数

^(\-|\+)?\d+(\.\d+)?$

有两位小数的正实数

^[0-9]+(.[0-9]{2})?$

有1~3位小数的正实数

^[0-9]+(.[0-9]{1,3})?$

非零的正整数

^[1-9]\d*$

^([1-9][0-9]*){1,3}$

^\+?[1-9][0-9]*$

非零的负整数

^\-[1-9][]0-9"*$

^-[1-9]\d*$

非负整数

^\d+$

^[1-9]\d*|0$

非正整数

^-[1-9]\d*|0$

^((-\d+)|(0+))$

整数

^-?\d+$

非负浮点数

^\d+(\.\d+)?$

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

非正浮点数

^((-\d+(\.\d+)?)|(0+(\.0+)?))$

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

正浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$

^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

负浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$

^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

浮点数

^(-?\d+)(\.\d+)?$

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

校验字符的表达式

汉字

^[\u4e00-\u9fa5]{0,}$

英文和数字

^[A-Za-z0-9]+$

^[A-Za-z0-9]{4,40}$

长度为3-20的所有字符

^.{3,20}$

由26个英文字母组成的字符串

^[A-Za-z]+$

由数字和26个英文字母组成的字符串

^[A-Za-z0-9]+$

中文、英文、数字包括下划线

^[\u4E00-\u9FA5A-Za-z0-9_]+$

中文、英文、数字但不包括下划线等符号

^[\u4E00-\u9FA5A-Za-z0-9]+$

^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

可以输入含有^%&',;=?$"等字符

[^%&',;=?$\x22]+

表单验证常用

用户名正则(4到16位(字母,数字,下划线,减号))

^[a-zA-Z0-9_-]{4,16}$

密码强度的校验(密码中必须包含字母、数字、特称字符,至少8个字符,最多30个字符)

(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}

Email正则

^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$

金额校验

^[0-9]+(.[0-9]{2})?$

手机号正则

^1[3|4|5|7|8][0-9]{9}$

电话号码

^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

身份证正则

^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$

URL正则

^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$

日期正则

^\d{4}(\-)\d{1,2}\1\d{1,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)-02-29)$

车牌号正则

^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$

特殊需求表达式

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]?)$

域名

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

16进制颜色的校验

^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$

QQ号(5-11位数字)

^[1-9][0-9]{4,10}$

微信号(6至20位,以字母开头,字母,数字,减号,下划线)

^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$

邮政编码(6位数字)

[1-9]\d{5}(?!\d)