'How do I convert a string to an int in Javascript?
how do I convert a string to int in JS, while properly handling error cases?
I want NaN returned when the argument is not really an integer quanityt:
- blank string should return NaN (not 0)
- mixed strings (e.g. "3b") should return NaN (not 3)
Solution 1:[1]
Solution 2:[2]
function stringToInt(str) {
var num = parseInt(str);
if (num == str)
return num;
return NaN;
}
Examples
stringToInt("")
NaN
stringToInt("3")
3
stringToInt("3x")
Nan
Solution 3:[3]
var intval = /^\d+$/.test( strval ) ? parseInt( strval ) : NaN;
Solution 4:[4]
You don't need much- if s is a string:
s%1 will return 0 if s is an integer.
It will return a non-zero number if s is a non-integer number,
and NaN if s is not a number at all.
function isInt(s){
return (s%1===0)? Number(s):NaN;
}
But although the number returned is an integer, to javascript it is still just a number.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Brian L |
| Solution 2 | Jim Blackler |
| Solution 3 | meouw |
| Solution 4 |
