isFloat.js 981 B

1234567891011121314
  1. import assertString from './util/assertString';
  2. import isNullOrUndefined from './util/nullUndefinedCheck';
  3. import { decimal } from './alpha';
  4. export default function isFloat(str, options) {
  5. assertString(str);
  6. options = options || {};
  7. var _float = new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(options.locale ? decimal[options.locale] : '.', "[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"));
  8. if (str === '' || str === '.' || str === ',' || str === '-' || str === '+') {
  9. return false;
  10. }
  11. var value = parseFloat(str.replace(',', '.'));
  12. return _float.test(str) && (!options.hasOwnProperty('min') || isNullOrUndefined(options.min) || value >= options.min) && (!options.hasOwnProperty('max') || isNullOrUndefined(options.max) || value <= options.max) && (!options.hasOwnProperty('lt') || isNullOrUndefined(options.lt) || value < options.lt) && (!options.hasOwnProperty('gt') || isNullOrUndefined(options.gt) || value > options.gt);
  13. }
  14. export var locales = Object.keys(decimal);