正则通用表达式
作者:互联网
JavaScript正则表达式(手机号码、邮箱、日期)
在平时的工作中,经常会遇到一些验证的功能,其中如号码、邮箱、日期之类的验证,但是在平常使用时,直接就抄了一份用,并没有很详细的研究过,所以就在这儿记录了一些常用的表达式,慢慢学习的同时,也分享给大家。
手机号码
由于现在虚拟号码的使用,所以第二位也不似以前的3|4|5|8的固定,所以此处是选择的3-9
let regu = /^1[3-9][0-9]{9}$/
邮箱
对于邮箱,查找了一下资料,发现基本都是名字@@域名的规律,所以根据这个,就可以大概的分成几个类别
1.只允许英文字母、数字、下划线、英文句号、以及中划线组成。
如:zhangsan-111@gmail.com
通过名称分析
此处可以分解为英文大小写、数字、下划线、中划线组成,因为是多个,所以尾部需用+号
let regu = /[a-zA-Z0-9_-]+/
通过域名分析
域名格式一般为 **.** 的格式,如qq.com 、163.com 、sohu.com等,所以可以大致用上方的正则,然后有些 ** .** .**的格式,所以后面要写成(\.[a-zA-Z0-9_-]+)+
let regu = /[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+/
最终表达式
let regu = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
2.名称允许汉字、数字、字母,域名只允许英文
如:张三110Abc@lenovo.com.cn
中文的正则为[\u4e00-\u9fa5]
通过邮箱格式和上面推导后的结果,可以得出上方邮箱的正则表达式为
let regu = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
日期时间
通过日期
日期格式为yyyy-MM-dd
年份第一个一般不能为0([1-9]\d{3}),日期分成两种情况,1-9月((0[1-9])和10-12月(1[0-2])量,天数则分成0-9(0[1-9])、10-29([1-2][0-9])、30-31(3[0-1])三种情况书写。
let regu =/^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
通过时间
时间格式为hh:mm:ss
hh:每天有24小时,所以可以分成0-19([0-1]\d)和20-24(2[0-3])来写,分钟和秒数则都是1-59秒,所以都写成[0-5]\d的格式
let regu =/^([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/
拼接
通过得到上方的正则,拼接起来,就可以得到日期加时间的正则
let regu =/^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(2[0-3]|[0-1]\d):[0-5]\d:[0-5]\d$/
标签:通用,regu,_-,zA,正则,let,邮箱,Z0,表达式 来源: https://blog.csdn.net/weixin_46677214/article/details/121097575