js校验是不是日期 RegExp

本文详细介绍了JavaScript中的RegExp对象及其属性用于匹配正则表达式,并展示了如何使用RegExp来验证输入日期是否符合标准格式。通过示例代码演示了如何解析匹配到的日期部分并进行日期有效性校验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.RegExp是JavaScript中的一个内置对象,为正则表达式。

<script  language="javascript">
/*
RegExp 是javascript中的一个内置对象。为正则表达式。
RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串,以此类推,RegExp.$2,RegExp.$3,..RegExp.$99总共可以有99个匹配
给你看了例子就知道了
*/
var r= /^(\d{4})-(\d{1,2})-(\d{1,2})$/; //正则表达式 匹配出生日期(简单匹配)     
r.exec('1985-10-15');
s1=RegExp.$1;
s2=RegExp.$2;
s3=RegExp.$3;
alert(s1+" "+s2+" "+s3);//结果为1985 10 15
</script>
 

2.区别:js中test 与exec 的区别?

 

3.简单的日期校验: 

//是否是日期
function isDate(str) {
    var rc = true;
    var year,month,day;
    reg = /^(\d{4})[-\/]?(\d{2})[-\/]?(\d{2})$/;

    if(!reg.test(str))
       return false;

    year  = eval(RegExp.$1);
    month = eval(RegExp.$2);
    day   = eval(RegExp.$3);

	if(str=="99999999" || str=="99991231"){
		return true;
	}

    if(year<1900 || year>2099)
        rc = false;
    if( (month < 1) || (month > 12) || (day < 1) || (day > 31) )
        return false;

    switch (month) {
    case 1 :
    case 3 :
    case 5 :
    case 7 :
    case 8 :
    case 10:
    case 12:
    if (day >31)
    rc = false;
    break;
    case 4 :
    case 6 :
    case 9 :
    case 11:
    if (day >30)
    rc = false;
    break;

    case 2 :
    if ( (year%4 == 0) && (year%100 != 0) || (year%400 == 0) ) {
    if( day > 29)
        rc = false;
    }
    else {
    if( day >28)
        rc = false;
    }
    break;

    default :
        rc = false;
    }
    return rc;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值