📅  最后修改于: 2023-12-03 15:05:39.642000             🧑  作者: Mango
在 TypeScript 中,检查字符串是否为日期需要使用正则表达式和内置的 Date
类。
我们可以通过正则表达式来验证字符串是否符合日期格式。以下是一个简单但不全面的正则表达式:
const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
这个正则表达式验证字符串是否有形如 YYYY-MM-DD
的格式,其中 YYYY
是 4 位数字的年份,MM
是 2 位数字的月份,DD
是 2 位数字的日份。
function isDate(str: string): boolean {
const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
if (!dateRegex.test(str)) { // 如果字符串不符合日期格式
return false;
}
const date = new Date(str); // 使用 Date 构造函数创建日期对象
return date.getFullYear() > 0; // 如果年份大于 0,则说明输入的是正确的日期
}
上述代码片段中,isDate
函数接受一个字符串参数 str
,并返回一个布尔值,表示字符串是否为日期。我们首先验证字符串是否符合正则表达式,如果不是,函数会直接返回 false
。如果字符串符合日期格式,则使用 Date
构造函数创建日期对象。最后,我们检查日期对象的年份是否大于 0,如果是,则说明输入的是正确的日期,否则说明输入的是无效的日期。
console.log(isDate("2022-06-12")); // true
console.log(isDate("2022-6-12")); // false
console.log(isDate("2022-06-31")); // false
console.log(isDate("2022-06-00")); // false
console.log(isDate("2022-00-01")); // false
console.log(isDate("2022-13-01")); // false
console.log(isDate("not a date")); // false
在 TypeScript 中,检查字符串是否为日期需要使用正则表达式和内置的 Date
类。我们可以通过正则表达式验证字符串是否符合日期格式,然后使用 Date
构造函数创建日期对象。最后,我们检查日期对象的年份是否大于 0,以确定输入的是否为正确的日期。