zoukankan      html  css  js  c++  java
  • js 日期匹配正则式

    //检验字符串中是否包含1900-2050的日期子字符串
    	var dateReg_null_ymd=new RegExp("(([2-9][0-9]|1[6-9])?[0-9]{2}([-\/\.])?((1[0-2]|0?[1-9])([-\/\.])?(2[0-8]|1[0-9]|0?[1-9])|(1[0-2]|0?[13-9])([-\/\.])?(29|30)|(1[02]|0?[13578])([-\/\.])?(31))|((1[6-9]|[2-9][0-9])?(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)([-\/\.])?0?2([-\/\.])?(29))");
    	var dateReg_nnull=new RegExp("(([2-9][0-9]|1[6-9])[0-9]{2}([-\/\.])?((1[0-2]|0?[1-9])([-\/\.])?(2[0-8]|1[0-9]|0?[1-9])|(1[0-2]|0?[13-9])([-\/\.])?(29|30)|(1[02]|0?[13578])([-\/\.])?(31))|((1[6-9]|[2-9][0-9])(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)([-\/\.])?0?2([-\/\.])?(29))");
    	var dateReg_sep=new RegExp("(([2-9][0-9]|1[6-9])?[0-9]{2}([-\/\.])((1[0-2]|0?[1-9])([-\/\.])(2[0-8]|1[0-9]|0?[1-9])|(1[0-2]|0?[13-9])([-\/\.])(29|30)|(1[02]|0?[13578])([-\/\.])(31))|((1[6-9]|[2-9][0-9])?(0[48]|[2468][048]|[13579][26])|(16|[2468][048]|[3579][26])00)([-\/\.])0?2([-\/\.])(29))");
    
    	var dateStr="sfdsffdsf987-12-28";          //"sfdsffdsf11987-12-28";          //"sfdsffdsf19987-12-28";
    	var r1=dateReg_null_ymd.exec(dateStr);     //什么都不确定时只能用这个,但效果不一定,比如1198会认为是11-9-8
    	var r2=dateReg_nnull.exec(dateStr);     //不确定有分隔符但年四位时用这个
    	var r3=dateReg_sep.exec(dateStr);      //确定有分隔符时最好使用这个
    	if(r1!=null){
    		console.log(r1[0]);
    	}
    	if(r2!=null){
    		console.log(r2[0]);
    	}
    	if(r3!=null){
    		console.log(r3[0]);
    	}
    

    是为了查找字符串中可能的日期,所以不是很严格,也可以在一定程度上用来检验日期字符串:

    	var time1="1987-12-28";
    	var time2="1987/12/28";
    	var time3="87/12/28";
    	var time4="87.12.28";
    	var time5="87.1.09";
    	var time6="987.1.1";
    	var time7="255.126.3";
    	console.log(dateReg_sep.test(time1));
    	console.log(dateReg_sep.test(time2));
    	console.log(dateReg_sep.test(time3));
    	console.log(dateReg_sep.test(time4));
    	console.log(dateReg_sep.test(time5));
    	console.log(dateReg_sep.test(time6));
    	console.log(dateReg_sep.test(time7));  //这个太不像话的false
    

      

  • 相关阅读:
    SQLite打开提示database disk image is malformed
    windows查看端口占用
    新浪SAE使用Thinkphp框架,禁用memcache节省豆子的方法
    Realtek 8168 安装 VMware ESXi 提示没有驱动
    13年国庆彩蛋
    Flex使用宋体渲染越南语显示错误
    微信 编码要UTF8
    WeiXin 验证成为开发者和更换服务器验证代码
    测试网络连通情况
    废弃sqlite代码,备查
  • 原文地址:https://www.cnblogs.com/frostbelt/p/2388701.html
Copyright © 2011-2022 走看看