项目中使用到的奇葩正则

365 阅读1分钟

常用正则

一、校验常用数字类型的表达式

  1. 数字: ^[0-9]*$
  2. n位的数字:^\d{n}$
  3. 至少n位的数字:^\d{n,}$
  4. m-n位的数字:^\d{m,n}$
  5. 零和非零开头的数字:^(0|[1-9][0-9]*)$
  6. 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
  7. 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
  8. 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
  9. 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
  10. 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
  11. 非零的正整数:^[1-9]\d*$^([1-9][0-9]*){1,3}$^\+?[1-9][0-9]*$
  12. 非零的负整数:^\-[1-9][]0-9"*$^-[1-9]\d*$
  13. 非负整数:^\d+$^[1-9]\d*|0$
  14. 非正整数:^-[1-9]\d*|0$ ^((-\d+)|(0+))$

特殊正则

  1. 0.0~3.0 :^(([0-2]{1}(.[0-9]){0,1})|([3]{1}(.[0]){0,1}))?$
  2. 0.00~100.00 :^((\d|[1-9]\d|100)(\.\d{1,2})?)$^(([0-9]{1,2}|100)(\.\d{1,2})?)$
  3. 版本号
    a. V || v开头,且版本号为3位数:^([Vv]\d+(?:\.\d+){2})|(\d+(?:\.\d+){2})$
    b. V || v开头,版本号可2位或3位数:^([Vv]\d+(?:\.\d+){1,2})|(\d+(?:\.\d+){1,2})$
    c. 版本号3位数:^\d+(?:\.\d+){2}$
    d. 版本号可2位或3位数:^\d+(?:\.\d+){1,2}$
二、校验字符的表达式
  1. 汉字:^[\u4e00-\u9fa5]{0,}$
  2. 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
  3. 长度为3-20的所有字符:^.{3,20}$
  4. 由26个英文字母组成的字符串:^[A-Za-z]+$
  5. 由26个大写英文字母组成的字符串:^[A-Z]+$
  6. 由26个小写英文字母组成的字符串:^[a-z]+$
  7. 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
  8. 由数字、26个英文字母或者下划线组成的字符串:^\w+$^\w{3,20}$
  9. 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
  10. 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
  11. 可以输入含有^%&',;=?\"等字符:`[^%&',;=?\x22]+ `
  12. 禁止输入含有~的字符:[^~\x22]+

更多奇葩正则待补充。。。