foop
Version:
interfaces that describe their intentions.
38 lines (36 loc) • 3.5 kB
JavaScript
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==