sugar
Version:
A Javascript utility library for working with native objects.
24 lines (20 loc) • 831 B
JavaScript
;
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;