Source: NumberValidator.js

/** @constructor */
hui.ui.NumberValidator = function(options) {
  hui.override({allowNull:false,min:0,max:10},options);
  this.min = options.min;
  this.max = options.max;
  this.allowNull = options.allowNull;
  this.middle = Math.max(Math.min(this.max,0),this.min);
};

hui.ui.NumberValidator.prototype = {
  validate : function(value) {
    if (hui.isBlank(value) && this.allowNull) {
      return {valid:true,value:null};
    }
    var number = parseFloat(value);
    if (isNaN(number)) {
      return {valid:false,value:this.middle};
    } else if (number<this.min) {
      return {valid:false,value:this.min};
    } else if (number>this.max) {
      return {valid:false,value:this.max};
    }
    return {valid:true,value:number};
  }
};