verificator
Version:
Client and server-side validation JavaScript library
31 lines (26 loc) • 1.32 kB
JavaScript
;
exports.__esModule = true;
var _utils = require('../utils');
var utils = _interopRequireWildcard(_utils);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
var validate = function validate(attribute, value, parameters, validator) {
var data = [];
var attributeName = validator.getPrimaryAttribute(attribute);
var path = attributeName.split('*')[0].replace(/^\.|\.$/g, '') || null;
var attributeData = utils.flatten(validator.getValue(path));
var attributeNameRegex = new RegExp('^' + utils.escape(attributeName).replace(/\\\*/g, '([^\.]+)'), 'u');
Object.keys(attributeData).forEach(function (k) {
var key = path + '.' + k;
if (key !== attribute && attributeNameRegex.test(key)) {
data.push(attributeData[k]);
}
});
if (parameters.indexOf('ignore_case') > -1) {
var regex = new RegExp('' + utils.escape(value), 'iu');
return data.filter(function (val) {
return regex.test(val);
}).length === 0;
}
return data.indexOf(value) === -1;
};
exports['default'] = validate;