JavaScript 正则表达式(手机号码、邮箱、日期)
在平时的工作中,常常会遇到一些验证的性能,其中如号码、邮箱、日期之类的验证,然而在平时应用时,间接就抄了一份用,并没有很具体的钻研过,所以就在这儿记录了一些罕用的表达式,缓缓学习的同时,也分享给大家。
手机号码
因为当初虚构号码的应用,所以第二位也不似以前的 3 |4|5| 8 的固定,所以此处是抉择的 3 -9
let regu = /^1[3-9][0-9]{9}$/
邮箱
对于邮箱,查找了一下材料,发现根本都是 名字 @@域名 的法则,所以依据这个,就能够大略的分成几个类别
1. 只容许英文字母、数字、下划线、英文句号、以及中划线组成。
如:mailto: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. 名称容许汉字、数字、字母,域名只容许英文
如:张三 mailto: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)、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$/
\