js 怎么判定一个日期是否是正确的日期?
方法一:Date
对象和 isNaN
使用 Date
对象来尝试创建日期,然后检查是否为 NaN
(非数字)。
function isValidDate(date) {
const parsedDate = new Date(date);
return parsedDate instanceof Date && !isNaN(parsedDate);
}
console.log(isValidDate("2023-12-01")); // true
console.log(isValidDate("invalid-date")); // false
方法二:正则表达式
可以用正则表达式来验证日期格式(例如 YYYY-MM-DD、DD/MM/YYYY)。
function isDateString(dateStr) {
const datePattern = /^\d{4}-\d{2}-\d{2}$/; // 示例: YYYY-MM-DD 格式
return datePattern.test(dateStr);
}
console.log(isDateString("2023-12-01")); // true
console.log(isDateString("12/01/2023")); // false
方法三:结合 isDateString
和 isValidDate
可以先用正则表达式检查格式,再用 isValidDate
检查是否为有效日期。
function isDate(dateStr) {
const datePattern = /^\d{4}-\d{2}-\d{2}$/; // YYYY-MM-DD 格式
if (!datePattern.test(dateStr)) return false;
return isValidDate(dateStr);
}
console.log(isDate("2023-12-01")); // true
console.log(isDate("12/01/2023")); // false
方法四:使用 moment.js
如果项目中使用了 moment.js
,可以更方便地判断日期:
// 引入 moment.js
// const moment = require('moment'); // 适用于 Node.js 环境
function isMomentDate(dateStr) {
return moment(dateStr, "YYYY-MM-DD", true).isValid();
}
console.log(isMomentDate("2023-12-01")); // true
console.log(isMomentDate("12/01/2023")); // false