JSFiddle - React, Tailwind, and code Playground
by Graham Fairweather
JavaScript
function isCharacterDigit(testCharacter) {
var charCode = testCharacter.charCodeAt(0);
return charCode >= 48 && charCode <= 57;
}
function isStringNumericalInteger(testValue) {
var start = 0,
character,
index,
length;
if (typeof testValue !== "string") {
return false;
}
character = testValue.charAt(start);
if (character === "+" || character === "-") {
start += 1;
character = testValue.charAt(start);
}
start += 1;
length = testValue.length;
if ((length > start && character === "0") || !isCharacterDigit(character)) {
return false;
}
for (index = start; index < length; index += 1) {
if (!isCharacterDigit(testValue.charAt(index))) {
return false;
}
}
return true;
}
console.log(isStringNumericalInteger("9007199254740991"));
console.log(isStringNumericalInteger("+123216848516878975616587987846516879844651654847"));
console.log(isStringNumericalInteger("-123216848516878975616587987846516879844651654847"));
console.log(isStringNumericalInteger("0"));
console.log(isStringNumericalInteger("+0"));
console.log(isStringNumericalInteger("-0"));
console.log(isStringNumericalInteger("+"));
console.log(isStringNumericalInteger("-"));
console.log(isStringNumericalInteger("1.1"));
console.log(isStringNumericalInteger("-1.1"));
console.log(isStringNumericalInteger("1e10"));
console.log(isStringNumericalInteger("010"));
console.log(isStringNumericalInteger("0x9"));
console.log(isStringNumericalInteger("NaN"));
console.log(isStringNumericalInteger("Infinity"));
console.log(isStringNumericalInteger("+Infinity"));
console.log(isStringNumericalInteger("-Infinity"));
console.log(isStringNumericalInteger(""));
console.log(isStringNumericalInteger(" "));
console.log(isStringNumericalInteger());
console.log(isStringNumericalInteger(null));
console.log(isStringNumericalInteger([]));
console.log(isStringNumericalInteger({}));