正则表达式

一些常用的正则表达式

一、校验数字的表达式

  • 数字: ^[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+)?$
  • 有两位小数的正实数: ^d+(.[0-9]{2})?$
  • 有 1~3 位小数的正实数: ^d+(.[0-9]{1,3})?$
  • 非零的正整数: ^[1-9]d*$
  • 非负整数: ^d+$
  • 非正整数: ^-[1-9]d*$
  • 非负浮点数: ^d+(.d+)?$
  • 非正浮点数: ^((-d+(.d+)?)|(0+(.0+)?))$
  • 正浮点数: ^[1-9]d.d|0.d[1-9]d$
  • 负浮点数:  ^-([1-9]d.d|0.d[1-9]d)$
  • 浮点数:  ^(-?d+)(.d+)?$

二、校验字符的表达式

  • 汉字: ^[u4e00-u9fa5]+$
  • 英文和数字: ^[0-9a-zA-Z]+$
  • 长度为 3-20 的所有字符: ^.{3,20}$
  • 由 26 个英文字母组成的字符串: ^[a-zA-Z]+$ 
  • 由 26 个大写英文字母组成的字符串: ^[A-Z]+$
  • 由 26 个小写英文字母组成的字符串: ^[a-z]+$
  • 由数字和 26 个英文字母组成的字符串: ^[a-zA-Z0-9]+$
  • 由数字、26 个英文字母或者下划线组成的字符串: ^w+$
  • 中文、英文、数字包括下划线: ^[u4E00-u9FA5a-zA-z0-9_]+$
  • 中文、英文、数字但不包括下划线等符号: ^[u4E00-u9FA5a-zA-Z0-9]+$
  • 可以输入含有 ^%&',;=?$" 等字符: [^%&',;=?$x22]+
  • 禁止输入含有 ~ 的字符: [^~x22]+

三、特殊需求表达式

  • Email地址: ^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
  • 域名: a-zA-Z0-9{0,62}(/.a-zA-Z0-9{0,62})+/.?
  • url: [a-zA-z]+://[^s]*
  • 手机号码: 1d{10}
  • 国内电话号码: d{3}-d{8}|d{4}-d{7}
  • 身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X:  (^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)
  • 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):  ^a-zA-Z{4,15}$
  • 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):  ^[a-zA-Z]w{5,17}$
  • 强密码(必须都含有数字/大写字母/小写字母/标点符号,8位以上): (?=^.{8,}$)(?=.*d)(?=.*W+)(?=.*[A-Z])(?=.*[a-z])(?!.*n).*$
  • QQ号:[1-9]d{4,}

相关推荐