如何在JavaScript中使用格式“mm / dd / yyyy”验证日期?
我想使用格式验证输入的日期格式mm/dd/yyyy
。
我在一个站点中找到了以下代码然后使用它但它不起作用:
function isDate(ExpiryDate) { var objDate, // date object initialized from the ExpiryDate string mSeconds, // ExpiryDate in milliseconds day, // day month, // month year; // year // date length should be 10 characters (no more no less) if (ExpiryDate.length !== 10) { return false; } // third and sixth character should be '/' if (ExpiryDate.substring(2, 3) !== '/' || ExpiryDate.substring(5, 6) !== '/') { return false; } // extract month, day and year from the ExpiryDate (expected format is mm/dd/yyyy) // subtraction will cast variables to integer implicitly (needed // for !== comparing) month = ExpiryDate.substring(0, 2) - 1; // because months in JS start from 0 day = ExpiryDate.substring(3, 5) - 0; year = ExpiryDate.substring(6, 10) - 0; // test year range if (year < 1000 || year > 3000) { return false; } // convert ExpiryDate to milliseconds mSeconds = (new Date(year, month, day)).getTime(); // initialize Date() object from calculated milliseconds objDate = new Date(); objDate.setTime(mSeconds); // compare input date and parts from Date() object // if difference exists then date isn't valid if (objDate.getFullYear() !== year || objDate.getMonth() !== month || objDate.getDate() !== day) { return false; } // otherwise return true return true; }function checkDate(){ // define date string to test var ExpiryDate = document.getElementById(' ExpiryDate').value; // check date and print message if (isDate(ExpiryDate)) { alert('OK'); } else { alert('Invalid date format!'); } }
关于什么可能是错的任何建议?
相关分类