UNPKG

ut2

Version:

一个现代 JavaScript 实用工具库。[点击查看在线文档]。

26 lines (23 loc) 710 B
import isObject from './isObject.js'; import isSymbol from './isSymbol.js'; var reIsBinary = /^0b[01]+$/i; var reIsOctal = /^0o[0-7]+$/i; var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; function toNumber(value) { if (typeof value === 'number') { return value; } if (isSymbol(value)) { return NaN; } if (isObject(value)) { value = Number(value); } if (typeof value !== 'string') { return value === 0 ? value : +value; } value = value.trim(); var isBinary = reIsBinary.test(value); return isBinary || reIsOctal.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NaN : +value; } export { toNumber as default };