Seditio Source
Root |
./othercms/phpBB3/vendor/s9e/text-formatter/src/Parser/AttributeFilters/NumericFilter.js
/** @const */
var NumericFilter =
{
/**
* @param  {*} attrValue
* @return {*}
*/
filterFloat: function(attrValue)
{
return /^(?:0|-?[1-9]\d*)(?:\.\d+)?(?:e[1-9]\d*)?$/i.test(attrValue) ? attrValue : false;
},

/**
* @param  {*} attrValue
* @return {*}
*/
filterInt: function(attrValue)
{
return /^(?:0|-?[1-9]\d*)$/.test(attrValue) ? attrValue : false;
},

/**
* @param  {*}       attrValue
* @param  {number}  min
* @param  {number}  max
* @param  {?Logger} logger
* @return {number|boolean}
*/
filterRange: function(attrValue, min, max, logger)
{
if (!/^(?:0|-?[1-9]\d*)$/.test(attrValue))
{
return false;
}

attrValue = parseInt(attrValue, 10);

if (attrValue < min)
{
if (logger)
{
logger.warn(
'Value outside of range, adjusted up to min value',
{
'attrValue' : attrValue,
'min'       : min,
'max'       : max
}
);
}

return min;
}

if (attrValue > max)
{
if (logger)
{
logger.warn(
'Value outside of range, adjusted down to max value',
{
'attrValue' : attrValue,
'min'       : min,
'max'       : max
}
);
}

return max;
}

return attrValue;
},

/**
* @param  {*} attrValue
* @return {*}
*/
filterUint: function(attrValue)
{
return /^(?:0|[1-9]\d*)$/.test(attrValue) ? attrValue : false;
}
};