UNPKG

verificator

Version:

Client and server-side validation JavaScript library

23 lines (22 loc) 937 B
import * as utils from '../utils'; const validate = (attribute, value, parameters, validator) => { const data = []; const attributeName = validator.getPrimaryAttribute(attribute); const path = attributeName.split('*')[0].replace(/^\.|\.$/g, '') || null; const attributeData = utils.flatten(validator.getValue(path)); const attributeNameRegex = new RegExp(`^${utils.escape(attributeName).replace(/\\\*/g, '([^\.]+)')}`, 'u'); Object.keys(attributeData).forEach(k => { const key = `${path}.${k}`; if (key !== attribute && attributeNameRegex.test(key)) { data.push(attributeData[k]); } }); if (parameters.indexOf('ignore_case') > -1) { const regex = new RegExp(`${utils.escape(value)}`, 'iu'); return data.filter(val => { return regex.test(val); }).length === 0; } return data.indexOf(value) === -1; }; export default validate;