validatorjs2
Version:
Validation library inspired by Laravel's Validator
200 lines (184 loc) • 4.78 kB
JavaScript
var replacements = {
/**
* Between replacement (replaces :min and :max)
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
between: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
min: parameters[0],
max: parameters[1]
});
},
/**
* Digits-Between replacement (replaces :min and :max)
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
digits_between: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
min: parameters[0],
max: parameters[1]
});
},
/**
* Required_if replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
required_if: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
other: this._getAttributeName(parameters[0]),
value: parameters[1]
});
},
/**
* Required_unless replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
required_unless: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
other: this._getAttributeName(parameters[0]),
value: parameters[1]
});
},
/**
* Required_with replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
required_with: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
field: this._getAttributeName(parameters[0])
});
},
/**
* Required_with_all replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
required_with_all: function(template, rule) {
var parameters = rule.getParameters();
var getAttributeName = this._getAttributeName.bind(this);
return this._replacePlaceholders(rule, template, {
fields: parameters.map(getAttributeName).join(', ')
});
},
/**
* Required_without replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
required_without: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
field: this._getAttributeName(parameters[0])
});
},
/**
* Required_without_all replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
required_without_all: function(template, rule) {
var parameters = rule.getParameters();
var getAttributeName = this._getAttributeName.bind(this);
return this._replacePlaceholders(rule, template, {
fields: parameters.map(getAttributeName).join(', ')
});
},
/**
* After replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
after: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
after: this._getAttributeName(parameters[0])
});
},
/**
* Before replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
before: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
before: this._getAttributeName(parameters[0])
});
},
/**
* After_or_equal replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
after_or_equal: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
after_or_equal: this._getAttributeName(parameters[0])
});
},
/**
* Before_or_equal replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
before_or_equal: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
before_or_equal: this._getAttributeName(parameters[0])
});
},
/**
* Same replacement.
*
* @param {string} template
* @param {Rule} rule
* @return {string}
*/
same: function(template, rule) {
var parameters = rule.getParameters();
return this._replacePlaceholders(rule, template, {
same: this._getAttributeName(parameters[0])
});
},
};
function formatter(attribute) {
return attribute.replace(/[_\[]/g, ' ').replace(/]/g, '');
}
module.exports = {
replacements: replacements,
formatter: formatter
};