UNPKG

foop

Version:

interfaces that describe their intentions.

38 lines (36 loc) 3.5 kB
var matchInteger = require('../regexp/matchInteger') var matchHex = require('../regexp/matchHex') var isNumber = require('./number') var isSymbol = require('./symbol') /** * @name isNumberish * @alias isNumberLike * @since 5.0.0-beta.6 * @version 5.0.1 <- added isSymbol check to avoid testing symbol * @memberOf is * * @NOTE this was old test, is used in funwithflags, and other cli environments * @NOTE this is helpful when casting strings to numbers * * @param {number | string | *} x numberish to check * @return {boolean} x isNumberish * * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Integers mozilla-integers-hex} * @see {@link mozilla-integers-hex} * @see is/number * @see cast/number * * @example * * isNumberish('10') //=> true * isNumberish(10) //=> true * isNumberish('10.01') //=> true * */ module.exports = function isNumberish(x) { if (isSymbol(x)) { return false } else if (isNumber(x)) { return true } else if (matchHex.test(x)) { return true } else { return matchInteger.test(x) } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyaXNoLmpzIiwic291cmNlcyI6WyJudW1iZXJpc2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbWF0Y2hJbnRlZ2VyID0gcmVxdWlyZSgnLi4vcmVnZXhwL21hdGNoSW50ZWdlcicpXG5jb25zdCBtYXRjaEhleCA9IHJlcXVpcmUoJy4uL3JlZ2V4cC9tYXRjaEhleCcpXG5jb25zdCBpc051bWJlciA9IHJlcXVpcmUoJy4vbnVtYmVyJylcbmNvbnN0IGlzU3ltYm9sID0gcmVxdWlyZSgnLi9zeW1ib2wnKVxuXG4vKipcbiAqIEBuYW1lIGlzTnVtYmVyaXNoXG4gKiBAYWxpYXMgaXNOdW1iZXJMaWtlXG4gKiBAc2luY2UgNS4wLjAtYmV0YS42XG4gKiBAdmVyc2lvbiA1LjAuMSA8LSBhZGRlZCBpc1N5bWJvbCBjaGVjayB0byBhdm9pZCB0ZXN0aW5nIHN5bWJvbFxuICogQG1lbWJlck9mIGlzXG4gKlxuICogQE5PVEUgdGhpcyB3YXMgb2xkIHRlc3QsIGlzIHVzZWQgaW4gZnVud2l0aGZsYWdzLCBhbmQgb3RoZXIgY2xpIGVudmlyb25tZW50c1xuICogQE5PVEUgdGhpcyBpcyBoZWxwZnVsIHdoZW4gY2FzdGluZyBzdHJpbmdzIHRvIG51bWJlcnNcbiAqXG4gKiBAcGFyYW0ge251bWJlciB8IHN0cmluZyB8ICp9IHggbnVtYmVyaXNoIHRvIGNoZWNrXG4gKiBAcmV0dXJuIHtib29sZWFufSB4IGlzTnVtYmVyaXNoXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvR3VpZGUvR3JhbW1hcl9hbmRfdHlwZXMjSW50ZWdlcnMgbW96aWxsYS1pbnRlZ2Vycy1oZXh9XG4gKiBAc2VlIHtAbGluayBtb3ppbGxhLWludGVnZXJzLWhleH1cbiAqIEBzZWUgaXMvbnVtYmVyXG4gKiBAc2VlIGNhc3QvbnVtYmVyXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICBpc051bWJlcmlzaCgnMTAnKSAgICAgIC8vPT4gdHJ1ZVxuICogICAgaXNOdW1iZXJpc2goMTApICAgICAgICAvLz0+IHRydWVcbiAqICAgIGlzTnVtYmVyaXNoKCcxMC4wMScpICAgLy89PiB0cnVlXG4gKlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGlzTnVtYmVyaXNoKHgpIHtcbiAgaWYgKGlzU3ltYm9sKHgpKSByZXR1cm4gZmFsc2VcbiAgZWxzZSBpZiAoaXNOdW1iZXIoeCkpIHJldHVybiB0cnVlXG4gIGVsc2UgaWYgKG1hdGNoSGV4LnRlc3QoeCkpIHJldHVybiB0cnVlXG4gIGVsc2UgcmV0dXJuIG1hdGNoSW50ZWdlci50ZXN0KHgpXG59XG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztBQUN0REEsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUM7QUFDOUNBLEdBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztBQUNwQ0EsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQnBDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxXQUFXLENBQUMsQ0FBQyxFQUFFO0VBQ3ZDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUEsT0FBTyxLQUFLLEVBQUE7T0FDeEIsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQSxPQUFPLElBQUksRUFBQTtPQUM1QixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQSxPQUFPLElBQUksRUFBQTtPQUNqQyxFQUFBLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQTtDQUNqQzsifQ==