How do I validate a date in this format (yyyy-mm-dd) using jquery?

前端 未结 11 1339
长情又很酷
长情又很酷 2020-12-02 11:41

I am attempting to validate a date in this format: (yyyy-mm-dd). I found this solution but it is in the wrong format for what I need, as in: (mm/dd/yyyy).

Here is t

11条回答
  •  情歌与酒
    2020-12-02 11:49

    try this Here is working Demo:

    $(function() {
        $('#btnSubmit').bind('click', function(){
            var txtVal =  $('#txtDate').val();
            if(isDate(txtVal))
                alert('Valid Date');
            else
                alert('Invalid Date');
        });
    
    function isDate(txtDate)
    {
        var currVal = txtDate;
        if(currVal == '')
            return false;
    
        var rxDatePattern = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/; //Declare Regex
        var dtArray = currVal.match(rxDatePattern); // is format OK?
    
        if (dtArray == null) 
            return false;
    
        //Checks for mm/dd/yyyy format.
        dtMonth = dtArray[3];
        dtDay= dtArray[5];
        dtYear = dtArray[1];        
    
        if (dtMonth < 1 || dtMonth > 12) 
            return false;
        else if (dtDay < 1 || dtDay> 31) 
            return false;
        else if ((dtMonth==4 || dtMonth==6 || dtMonth==9 || dtMonth==11) && dtDay ==31) 
            return false;
        else if (dtMonth == 2) 
        {
            var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
            if (dtDay> 29 || (dtDay ==29 && !isleap)) 
                    return false;
        }
        return true;
    }
    
    });
    

    changed regex is:

    var rxDatePattern = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/; //Declare Regex
    

提交回复
热议问题