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({}));