isDecimal.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = isDecimal;
  6. var _merge = require('./util/merge');
  7. var _merge2 = _interopRequireDefault(_merge);
  8. var _assertString = require('./util/assertString');
  9. var _assertString2 = _interopRequireDefault(_assertString);
  10. var _alpha = require('./alpha');
  11. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  12. function decimalRegExp(options) {
  13. var regExp = new RegExp('^[-+]?([0-9]+)?(\\' + _alpha.decimal[options.locale] + '[0-9]{' + options.decimal_digits + '})' + (options.force_decimal ? '' : '?') + '$');
  14. return regExp;
  15. }
  16. var default_decimal_options = {
  17. force_decimal: false,
  18. decimal_digits: '1,',
  19. locale: 'en-US'
  20. };
  21. var blacklist = ['', '-', '+'];
  22. function isDecimal(str, options) {
  23. (0, _assertString2.default)(str);
  24. options = (0, _merge2.default)(options, default_decimal_options);
  25. if (options.locale in _alpha.decimal) {
  26. return !blacklist.includes(str.replace(/ /g, '')) && decimalRegExp(options).test(str);
  27. }
  28. throw new Error('Invalid locale \'' + options.locale + '\'');
  29. }
  30. module.exports = exports['default'];