sugar
Version:
A Javascript utility library for working with native objects.
38 lines (32 loc) • 1.23 kB
JavaScript
;
var CommonChars = require('./CommonChars'),
chr = require('./chr'),
allCharsReg = require('../internal/allCharsReg');
var HALF_WIDTH_ZERO = CommonChars.HALF_WIDTH_ZERO,
FULL_WIDTH_ZERO = CommonChars.FULL_WIDTH_ZERO,
HALF_WIDTH_PERIOD = CommonChars.HALF_WIDTH_PERIOD,
FULL_WIDTH_PERIOD = CommonChars.FULL_WIDTH_PERIOD,
HALF_WIDTH_COMMA = CommonChars.HALF_WIDTH_COMMA;
var fullWidthNumberReg, fullWidthNumberMap, fullWidthNumbers;
function buildFullWidthNumber() {
var fwp = FULL_WIDTH_PERIOD, hwp = HALF_WIDTH_PERIOD, hwc = HALF_WIDTH_COMMA, fwn = '';
fullWidthNumberMap = {};
for (var i = 0, digit; i <= 9; i++) {
digit = chr(i + FULL_WIDTH_ZERO);
fwn += digit;
fullWidthNumberMap[digit] = chr(i + HALF_WIDTH_ZERO);
}
fullWidthNumberMap[hwc] = '';
fullWidthNumberMap[fwp] = hwp;
// Mapping this to itself to capture it easily
// in stringToNumber to detect decimals later.
fullWidthNumberMap[hwp] = hwp;
fullWidthNumberReg = allCharsReg(fwn + fwp + hwc + hwp);
fullWidthNumbers = fwn;
}
buildFullWidthNumber();
module.exports = {
fullWidthNumberReg: fullWidthNumberReg,
fullWidthNumberMap: fullWidthNumberMap,
fullWidthNumbers: fullWidthNumbers
};