UNPKG

sugar

Version:

A Javascript utility library for working with native objects.

24 lines (20 loc) 831 B
'use strict'; var CommonChars = require('../var/CommonChars'), coreUtilityAliases = require('../var/coreUtilityAliases'), fullwidthNumberHelpers = require('../var/fullwidthNumberHelpers'); var fullWidthNumberReg = fullwidthNumberHelpers.fullWidthNumberReg, fullWidthNumberMap = fullwidthNumberHelpers.fullWidthNumberMap, getOwn = coreUtilityAliases.getOwn, HALF_WIDTH_PERIOD = CommonChars.HALF_WIDTH_PERIOD; function stringToNumber(str, base) { var sanitized, isDecimal; sanitized = str.replace(fullWidthNumberReg, function(chr) { var replacement = getOwn(fullWidthNumberMap, chr); if (replacement === HALF_WIDTH_PERIOD) { isDecimal = true; } return replacement; }); return isDecimal ? parseFloat(sanitized) : parseInt(sanitized, base || 10); } module.exports = stringToNumber;