...
大前端

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

方法三:结合 isDateStringisValidDate

可以先用正则表达式检查格式,再用 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
使用chrome调试手机微信内置浏览器 前端禁用微信浏览器字体调整,用户设置了系统字体大小,导致微信内嵌h5页面字体大小改变
biu biu biu
js将字符串数字数组转换成uint8Array数组,用于mcu通讯指令。 金蝶发票助手打开提示:本功能基于跨技术平台的嵌套方式实现,对正浏览器版本和兼容模式有要求。解决 关于HP打印机在WIN7上打印窗口无响应的解决办法 免费SSL证书、自动化续签证书,acme.sh 完整教程:安装、使用、常见错误及解决方案 分享一个微信朋友圈点赞秒赞软件,无需下载一秒几千赞