本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,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})$/
- 检测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]))$/
- 数字,大小写字母,特殊字符
/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/])/
- 数字,特殊字符
/^(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/])/
- 大小写字母,特殊字符
/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/])/
- 数字和大小写字母
/^(?=.*?[a-z])(?=.*?[A-Z])(?=.*\d)/
- 特殊字符
/(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/])/
字符串校验
- 日期校验
/^\d{4}-\d{1,2}-\d{1,2}/
- 小写字母
/^[a-z]+$/
- 大写字母
/^[A-Z]+$/
- 大小写字母
/^[A-Za-z]+$/
- 校验身份证
/^\d{15}|\d{18}$/
- 以字母开头,长度在n~m之间,只能包含字母、数字和下划线
const checkPasswordSpecification = (options) => new RegExp('^[a-zA-Z]\\w{'+ options.start +','+ options.end +'}$').test(options.val)
- 汉字
/^[\u4e00-\u9fa5]*$/
8.由数字、26个英文字母或者下划线组成的字符串
/^\w+$/
- 中文、英文、数字包括下划线
/^[\u4E00-\u9FA5A-Za-z0-9_]+$/
10.中文、英文、数字但不包括下划线等符号
/^[\u4E00-\u9FA5A-Za-z0-9]+$/
数字校验
- 验证字符串是否是数字
/^[0-9]+.?[0-9]*$/
- 检测N位数
const checkNumberLength = (options) => new RegExp("^\\d{" + options.length + "}$").test(options.val)
- 检测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+)?$/