【问题标题】:How to check if unknown value is a valid number?如何检查未知值是否为有效数字?
【发布时间】:2023-01-09 17:50:30
【问题描述】:

给定一个 unknown 类型的值和一个描述该值是否必须是整数或浮点值的配置。我从这个功能开始

function isValueNumber(value: unknown, isAcceptingFloatingPointNumbers: boolean) {
  if (Number.isNaN(value)) {
    return false;
  }
  
  if (!isAcceptingFloatingPointNumbers) {
    return Number.isInteger(value);
  }
  
  return true;
}

问题是当我这样调用函数时

isValueNumber("this is not a valid number", true)

它仍然返回true,因为我的支票Number.isNaN不正确(Is Number.IsNaN() more broken than isNaN()

您对如何修复此验证器功能有任何想法吗?

【问题讨论】:

  • 只是检查它是否是一个数字。 typeof value === "number"

标签: javascript typescript


【解决方案1】:

这样,如果不是 number,该函数将返回 false:

function isValueNumber(value: unknown, isAcceptingFloatingPointNumbers: boolean) {
  if (typeof value !== 'number') {
    return false;
  }
  
  if (!isAcceptingFloatingPointNumbers) {
    return Number.isInteger(value);
  }
  
  return true;
}

【讨论】:

    猜你喜欢
    • 2021-10-03
    • 2012-10-29
    • 1970-01-01
    • 2018-02-02
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多