Home > Blockchain >  How to check if unknown value is a valid number?
How to check if unknown value is a valid number?

Time:01-09

Given a value of type unknown and a configuration describing if that value must be an integer or float value. I started with this function

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

The problem is that when I call the function like so

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

it still returns true because my check Number.isNaN is not correct ( Is Number.IsNaN() more broken than isNaN() )

Do you have any ideas how to fix this validator function?

CodePudding user response:

This way, the function will return false if not a number :

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

  • Related