
Do you train Kung Fu?
Or know someone who does?
Then check out KungFuPeople.com
Mobile version of this page
Previous:
SVN + ./todo + crontab
Next:
IssueTrackerProduct 0.7.2 released
To assert or assertEqual in Python unit testing
Interesting float/int casting in Python
SVN + ./todo + crontab
Next:
IssueTrackerProduct 0.7.2 released
Related blogs
Integer division in programming languagesTo assert or assertEqual in Python unit testing
Interesting float/int casting in Python
Related by category
isInt() JavaScript function
22nd of May 2006
Here's my take on a function that determines if a variable is an integer or not before or after it's been recast to an int. The functionality is very similar to Python's isdigit() function which works like this:
>>> assert "1".isdigit()
>>> assert not "1.0".isdigit()
>>> assert not "1.0".isdigit()
However, my Javascript function should return true when the input is an integer or a string of an integer. Here it goes:
function isInt(x) {
var y=parseInt(x);
if (isNaN(y)) return false;
return x==y && x.toString()==y.toString();
}
assert(isInt("1"));
assert(isInt(1));
assert(!isInt("1a"));
assert(!isInt("1.0"));
var y=parseInt(x);
if (isNaN(y)) return false;
return x==y && x.toString()==y.toString();
}
assert(isInt("1"));
assert(isInt(1));
assert(!isInt("1a"));
assert(!isInt("1.0"));
You can see it in action here. To be honest, I'm writing about this here just to not forget it the next time I need a similar function. Sorry to cause any interweb-noise.
Tweet
Comment
Kal -
16th April 2007
[«« Reply to this]
Am I allowed to use this function as long as I give you credit for it in my source code?
Am I allowed to use this function as long as I give you credit for it in my source code?
Okonomiyaki3000 -
11th December 2007
[«« Reply to this]
how about this:
String.prototype.isInt = function()
{
var re = new RegExp("^[\d]+$");
return this.match(re);
}
how about this:
String.prototype.isInt = function()
{
var re = new RegExp("^[\d]+$");
return this.match(re);
}
scott christopher -
4th February 2009
[«« Reply to this]
I tend to use:
function isInt (i) {
return (i % 1) == 0;
}
I tend to use:
function isInt (i) {
return (i % 1) == 0;
}
Peter Bengtsson -
27th April 2010
[«« Reply to this]
This fails on floating point numbers. isInt("1.1") is false but isInt("1.0") is true which it's not supposed to.
This fails on floating point numbers. isInt("1.1") is false but isInt("1.0") is true which it's not supposed to.
halbesbit -
26th April 2010
[«« Reply to this]
sorry i post the false code :/, delete it please.
isInt=function (i) { return ((i % 1) == 0)? i:false; }
sorry i post the false code :/, delete it please.
isInt=function (i) { return ((i % 1) == 0)? i:false; }
Peter Bengtsson -
27th April 2010
[«« Reply to this]
Thanks. That's what scott suggested above. His approach returns only true or false.
Thanks. That's what scott suggested above. His approach returns only true or false.


Save this page in del.icio.us
Thanx good idea i think. But are you sure the second part of the condition is useful?
Not sure:p
The second part is necessary so that "1.0" yields a false.
Indeed. My mistake:s