返回

用 JS 验证日期格式过期时间:包括 Jest 单元测试

前端

开发过程中,经常会遇到需要处理日期和时间的场景,验证日期格式过期时间是其中一项常见的任务。本文将讨论如何使用 JavaScript (JS) 来编写一个验证过期时间的函数,并附上 Jest 单元测试以确保其正确性。

编写验证过期时间的函数

// 定义验证过期时间函数
const isValidExpirationDate = (expirationDate) => {
  // 将字符串转换为 Date 对象
  const date = new Date(expirationDate);

  // 检查日期是否有效
  if (isNaN(date.getTime())) {
    return false;
  }

  // 获取当前时间
  const now = new Date();

  // 比较日期是否过期
  return date >= now;
};

Jest 单元测试

describe('isValidExpirationDate', () => {
  it('should return true for a valid expiration date', () => {
    const expirationDate = '2023-12-31';
    const result = isValidExpirationDate(expirationDate);
    expect(result).toBe(true);
  });

  it('should return false for an invalid expiration date', () => {
    const expirationDate = '2020-01-01';
    const result = isValidExpirationDate(expirationDate);
    expect(result).toBe(false);
  });

  it('should return false for an invalid date format', () => {
    const expirationDate = 'abc';
    const result = isValidExpirationDate(expirationDate);
    expect(result).toBe(false);
  });
});

使用示例

// 使用函数验证过期时间
const expirationDate = '2023-12-31';
const isValid = isValidExpirationDate(expirationDate);

// 根据结果采取相应操作
if (isValid) {
  console.log('日期有效');
} else {
  console.log('日期已过期');
}

除了函数和单元测试,本文还提供了使用示例,帮助您在实际项目中应用该函数。如果您想进一步了解 JavaScript 中的日期和时间处理,可以参考 MDN Web Docs 或其他权威资源。