正则小练习


  • 微信扫码关注公众号 :前端前端大前端,追求更精致的阅读体验 ,一起来学习啊
  • 关注后发送关键资料,免费获取一整套前端系统学习资料和老男孩python系列课程
    在这里插入图片描述

学习资源推荐

16进制颜色

分析

  • example:#FFF,#2E3371,#aaffbb,#236542
  • sign:用数字0到9和字母A到F(或a~f)表示
  • note:组合序列可出现3次或6次
var regex=/#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g
var str="#FFF,#2E3371,#aaffbb,#236542";
console.log(str.match(regex)) // ["#FFF", "#2E3371", "#aaffbb", "#236542"]

24小时

分析

  • example:23:59 01:24 13:14 05:21
  • sign:

前提:第一位数字有效取值为/[0-2]/

if(第一位数字===2){

    第二位数字取值为/[0-3]/

}else{
    第二位数字取值为/[0-9]/
}

第三位数字 为[0-5]
第四位数字 为[0-9]



var regex= /^([01][0-9]|[2][0-3]):[0-5][0-9]$/
var time1="23:59";
var time2="01:24";
var time3="13:14";
var time4="05:21";
regex.test(time1)//true
regex.test(time2)//true
regex.test(time3)//true
regex.test(time4)//true


年月日(YYYYMMDD)

分析

  • example:20191124 19971031 19980726
  • sign
* 四位数年份  [0-9]{4}
* 两位数月份 

if(当前月份>=10){
	regex=/[1][0-2]/
}else{
	regex=/0[1-9]/
}

* 两位数日
if(当前日<10){
  regex=/0[1-9]/
}else {
	if(当前日>=30){
	 regex=/3[01]/
  	}else{
  	 regex=/[12][0-9]/
}

}


var regex = /^[0-9]{4}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])$/;
console.log(regex.test("20191124"),regex.test("19971031"),regex.test("19980726"));//true true true

发布了396 篇原创文章 · 获赞 786 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/qq_42813491/article/details/103222648
今日推荐