Javascript 验证函数的返回应该如何中断或继续另一个函数?

Javascript 验证函数的返回应该如何中断或继续另一个函数?,javascript,function,Javascript,Function,我创建了一个函数来验证酒店入住和结账的日期,例如: function reverseDate(date) { try { const regex = '^([0-9]{2})([0-9]{2})([0-9]{4})'; const dateFormated = date.match(regex); return `${dateFormated[2]}/${dateFormated[1]}/${dateFormated[3]}`; } catch (error) {

我创建了一个函数来验证酒店入住和结账的日期,例如:

function reverseDate(date) {
  try {
    const regex = '^([0-9]{2})([0-9]{2})([0-9]{4})';
    const dateFormated = date.match(regex);
    return `${dateFormated[2]}/${dateFormated[1]}/${dateFormated[3]}`;
  } catch (error) {
    return [{ mensagem: 'Date is not valid!' }];
  }
}

function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}

function validacao(checkin, checkout) {
  // Check data is null, undefined or empty
  if (!checkin || !checkout) {
    return [{ mensagem: 'Fill CheckIn and / or Checkout.' }];
  }

  // Permit only string entry date
  if (typeof (checkin) === 'string' && typeof (checkout) === 'string') {
    let checkIn = new Date(reverseDate(checkin));
    let checkOut = new Date(reverseDate(checkout));
    // Date is not valid
    if (!isValidDate(checkIn) || !isValidDate(checkOut)) return [{ mensagem: 'Date is not valid!' }];
    // CheckIn can be equal or less than CheckOut 
    if (checkIn === checkOut) {
      return [{ mensagem: 'Checkout must be greater than CheckIn' }];
    }
    // Checkout can be less than CheckIn
    if (checkOut < checkIn) {
      return [{ mensagem: 'Checkout can be less than Checkin' }];
    }
  } else {
    return [{ messagem: 'Data type is not valid, only string.' }];
  }

}
通量始终持续,但我需要中断,例如,当我测试时:

{checkin:'11022021', checkout: '' }
有人能帮我吗?

主要是,你必须检查validate的返回值。返回值当前被丢弃。此外,验证函数在发现问题时返回错误消息,但在签入和签出正常时不返回任何信息

下面是我要做的:

在validate的末尾返回一些东西,比如一个空数组:Return[]; 在main中捕获返回值:const validationErrors=validatecheckin,checkout; 检查validationErrors数组。如果其长度不为零,则存在验证错误。这些错误应该显示给用户,然后您只需从main返回ing即可离开main。 通常,您必须检查validate的返回值。返回值当前被丢弃。此外,验证函数在发现问题时返回错误消息,但在签入和签出正常时不返回任何信息

下面是我要做的:

在validate的末尾返回一些东西,比如一个空数组:Return[]; 在main中捕获返回值:const validationErrors=validatecheckin,checkout; 检查validationErrors数组。如果其长度不为零,则存在验证错误。这些错误应该显示给用户,然后您只需从main返回ing即可离开main。
很好@kol,但是如果你允许,按照我的规则,checkin==checkout不起作用,可以帮助我这些是日期,所以你必须比较它们的值:if checkin.valueOf==checkout.valueOf{valueOf方法以数字数据类型返回日期对象的原始值,即自1970年1月1日UTC午夜以来的毫秒数。Great@kol,但如果允许,根据我的一条规则,checkin==checkout不起作用,可以帮助Methes是日期,因此您必须比较它们的值:if checkin.valueOf==checkout.valueOf{valueOf方法以数字数据类型返回日期对象的原语值,即自UTC 1970年1月1日午夜以来的毫秒数。
{checkin:'11022021', checkout: '' }