正则通用表达式

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$/
上一篇:第五章 留数及其应用


下一篇:DOM 元素 属性和方法