This should do it all in 1 line, but it forgets up with decimal places for some reason, even if i set it to not strip the . char it still says false, and it also doesn't work for excessively large numbers like 1000000000000000, but I have no idea why, it shouldn't screw up like that.
function isValidInteger(%i)
{
return stripChars(%i, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=[];',/{}:<>?" SPC getSubStr(%i, 0, 1) == "-" ? "" : "-") == %i && !strstr(%i, ".") < 1;
}