...
大前端

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
20 张图表达程序员的心酸...... 雨霖铃·寒蝉凄切 win10 route add 添加静态路由,双网卡一个内网一个外网路由配置,双网关路由配置 PHP读取远程URL出现 file_get_contents(): SSL operation failed with code 1. OpenSSL vue 脚手架 sass安装