常用正则表达式收集
大约 2 分钟
前言
收集日常开发中经常用到的一些正则表达式(PS:又一次的懒人速养记)。
数字字母组合
要求
必须包含数字和字母方能过正则验证
/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/;
身份证号
要求
验证 18 位身份证号, 末尾的 X
为大写
/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
大陆的手机号
要求
验证 11 位的大陆手机号码
/^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$/;
Email 邮箱地址
要求
Email 的规则: name@domain
name 最长 64, domain 最长 253, 总长最长 256
name 可以使用任意 ASCII 字符:
大小写英文字母 a-z, A-Z
数字 0-9
字符 !#$%&'*+-/=?^_`{|}~
字符 . 不能是第一个和最后一个, 不能连续出现两次
但是有些邮件服务器会拒绝包含有特殊字符的邮件地址
domain 仅限于 26 个英文字母、10 个数字、连词号-
连词号-不能是第一个字符
顶级域名(com、cn 等)长度为 2 到 6 个
/^([\w-_]+(?:\.[\w-_]+)*)@((?:[a-z0-9]+(?:-[a-zA-Z0-9]+)*)+\.[a-z]{2,6})$/i;
中国的邮政编码
要求
验证 6 位中国的邮政编码
/^[0-9]\d{5}(?!\d)$/;
密码强度
要求
必须包含大写字母, 小写字母, 数字, 特殊字符四种中的三种, 长度要求 8 到 30 位
/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,30}$/;
16 进制验证
要求
必须包含 0x
, 不区分大小写, 除去 0x
匹配 4 位
/(^0x[a-fA-F0-9]{1,4}$)|(^[+]{0,1}(\d+)$)/;
正整数
要求
验证正整数, 非小数
/^[+]{0,1}(\d+)$/;
URL
要求
验证 URL 地址是否合法
/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
协议
要求
验证 URL 的协议是否为 http
或者 https
/^(http?|https)/;
非中文字符
要求
只能是非中文字符 :
::
/^[^\u4e00-\u9fa5]+$/;