Reputation: 31
I'm trying to do error handling on 2 input values. I'm using regex to confirm that the input is always a number. The issue I'm having is that I don't want my error handling to kick in if the user literally inputs 0. Right now I'm using:
number = parseInt(incomingValue) || ""
to set my variable. The issue is that this turns '0'
into ""
Its fine if an empty value becomes an empty string because I am disabling my error checking when the lengths are equal to 0
, but I need to properly turn '0'
into a number 0
. Anyone have any ideas?
Additionally, I'd also like to turn '000'
(and so forth) into a number 0
Upvotes: 1
Views: 9244
Reputation: 1
Use "Number()":
console.log(Number('0'));
console.log(Number('000'));
console.log(typeof(Number('0')));
console.log(typeof(Number('000')));
Or put "+" before '0' and '000':
console.log(+'0');
console.log(+'000');
console.log(typeof(+'0'));
console.log(typeof(+'000'));
Or put "* 1"
before or after '0' and '000':
console.log('0' * 1);
console.log('000' * 1);
console.log(typeof('0' * 1));
console.log(typeof('000' * 1));
Upvotes: 1
Reputation: 1
You can try typeof to distinguish what type of variable you are receiving
typeof true === 'boolean'
typeof null === 'object'
typeof 62 === 'number'
typeof 'Hello World' === 'string'
Upvotes: 0
Reputation: 46
You can use parseInt(incomingValue)
to get the int
value.
For comparing you can use ===
for equal value and equal type means (incomingValue === 0)
will be true
in case of incomingValue = 0
.
Upvotes: 0
Reputation: 10998
You can turn '0' or '000' into a number by just doing:
parseInt('0'); // 0
parseInt('000'); // 0
The reason your code is not working is that javascript treats 0
as a falsly value, so when you do this:
const number = parseInt('0') || ""
the expression parseInt('0')
will return 0
which is falsy. As a result, the || ""
will be executed which will set number
to ""
. You'll need to separate your parseInt
and your default assignment to achieve what you want.
Upvotes: 4