鲜为人知的正则大全,让你不再为正则而烦恼

1,617 阅读1分钟

本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

正则对于大多数前端来说是个头疼的问题,学吧,实际用的也不多,而且耗时,百度CV吧,又找不到合适的正则,本猴整理了常用的正则,各位客观们一键三连起来吧,方便以后好找😀。

日常使用

1.检测电话号码是否正确

/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/

2.检测是否是邮箱

/^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/
  1. 检测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.,?'\\+&%$#=~_-]+))*$/

4.国内座机号码

/\d{3}-\d{8}|\d{4}-\d{7}/

5.必须包含大小写字母和数字的组合,不能使用特殊字符,长度在n-m之间

const checkNotSpecial = (options) => new RegExp('^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{'+ options.start +','+ options.end + '}$').test(options.val)

6.HTML标记

/<(\\S*?)[^>]*>.*?</\\1>|<.*? />/

7.中国邮政编码

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

8.IP地址

/^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/

9.端口

/^(([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5]))$/
  1. 数字,大小写字母,特殊字符
/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/])/
  1. 数字,特殊字符
/^(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/])/
  1. 大小写字母,特殊字符
/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/])/
  1. 数字和大小写字母
/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*\d)/
  1. 特殊字符
/(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/])/

字符串校验

  1. 日期校验
/^\d{4}-\d{1,2}-\d{1,2}/
  1. 小写字母
/^[a-z]+$/
  1. 大写字母
/^[A-Z]+$/
  1. 大小写字母
/^[A-Za-z]+$/
  1. 校验身份证
/^\d{15}|\d{18}$/
  1. 以字母开头,长度在n~m之间,只能包含字母、数字和下划线
const checkPasswordSpecification = (options) => new RegExp('^[a-zA-Z]\\w{'+ options.start +','+ options.end +'}$').test(options.val)
  1. 汉字
/^[\u4e00-\u9fa5]*$/

8.由数字、26个英文字母或者下划线组成的字符串

/^\w+$/
  1. 中文、英文、数字包括下划线
/^[\u4E00-\u9FA5A-Za-z0-9_]+$/

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

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

数字校验

  1. 验证字符串是否是数字
/^[0-9]+.?[0-9]*$/
  1. 检测N位数
const checkNumberLength = (options) => new RegExp("^\\d{" + options.length + "}$").test(options.val)
  1. 检测m-n位的数字
const checkAppointLen: = (options) => new RegExp("^\\d{" + options.start + ',' +  options.end + "}$").test(options.val)

4.零和非零开头的数字

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

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

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

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

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

7.正数、负数、和小数

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

8.有两位小数的正实数

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

9.有1~3位小数的正实数

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

10.非零的正整数

/^[1-9]\d*/

11.非零的负整数

/^-[1-9]\d*$/

12.非负整数

/^\d+$/

13.非正整数

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

14.非负浮点数

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

15.非正浮点数

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

16.正浮点数

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

17.负浮点数

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

18.浮点数

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