45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = isDecimal;
|
||
|
|
||
|
var _merge = require('./util/merge');
|
||
|
|
||
|
var _merge2 = _interopRequireDefault(_merge);
|
||
|
|
||
|
var _assertString = require('./util/assertString');
|
||
|
|
||
|
var _assertString2 = _interopRequireDefault(_assertString);
|
||
|
|
||
|
var _includes = require('./util/includes');
|
||
|
|
||
|
var _includes2 = _interopRequireDefault(_includes);
|
||
|
|
||
|
var _alpha = require('./alpha');
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
|
||
|
function decimalRegExp(options) {
|
||
|
var regExp = new RegExp('^[-+]?([0-9]+)?(\\' + _alpha.decimal[options.locale] + '[0-9]{' + options.decimal_digits + '})' + (options.force_decimal ? '' : '?') + '$');
|
||
|
return regExp;
|
||
|
}
|
||
|
|
||
|
var default_decimal_options = {
|
||
|
force_decimal: false,
|
||
|
decimal_digits: '1,',
|
||
|
locale: 'en-US'
|
||
|
};
|
||
|
|
||
|
var blacklist = ['', '-', '+'];
|
||
|
|
||
|
function isDecimal(str, options) {
|
||
|
(0, _assertString2.default)(str);
|
||
|
options = (0, _merge2.default)(options, default_decimal_options);
|
||
|
if (options.locale in _alpha.decimal) {
|
||
|
return !(0, _includes2.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);
|
||
|
}
|
||
|
throw new Error('Invalid locale \'' + options.locale + '\'');
|
||
|
}
|
||
|
module.exports = exports['default'];
|