Hi,这里是前端后花园,每天学习一个 JS 片段,涨涨知识🧀!今天带来的是如何校验日期是否合法。
代码
const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());
isDateValid('December 17, 1995 03:24:00'); // true
isDateValid('1995-12-17T03:24:00'); // true
isDateValid('1995-12-17 T03:24:00'); // false
isDateValid('Duck'); // false
isDateValid(1995, 11, 17); // true
isDateValid(1995, 11, 17, 'Duck'); // false
isDateValid({}); // false
分享原因
-
isDateValid
函数能灵活的日期验证工具,支持处理多种格式的日期和时间输入,判断它们是否表示有效的日期; -
接受多种格式的日期和时间字符串:如果传入的参数可以被
Date
构造函数解析为一个有效的日期,函数返回true
。这包括常见的日期时间字符串格式,如'December 17, 1995 03:24:00'
和'1995-12-17T03:24:00'
。 -
接受多种格式的日期和时间字符串:如果传入的参数可以被
Date
构造函数解析为一个有效的日期,函数返回true
。这包括常见的日期时间字符串格式,如'December 17, 1995 03:24:00'
和'1995-12-17T03:24:00'
。
代码解析
-
使用扩展运算符(…)将参数数组传递给 Date 构造函数,如果不能被解析为有效日期,会被设置为一个表示“Invalid Date”的特殊值;;
-
使用
Date.Prototype.valueOf()
返回日期的时间值,非法日期Date对象会返回NaN
; -
Number.isNaN()
检查返回值是否为Number类型,判断是否创建了有效的 Date 对象。
这里是JS代码片段系列,记录开发过程常见代码片段,往期精选JS代码片段: