Я пытаюсь проверить строку (номер телефона) с помощью этого регулярного выражения ^+[0-9]{9,12}$
но я получаю эту ошибку ... .pattern should match format "regex" ...
Я просмотрел документацию на https://ajv.js.org и т. д., посмотрел примеры и т. д. и пробовал много вариантов, но не могу понять, что не так с моим кодом.
Вот мой код:
const schema = {
type: 'object',
properties: {
users: {
type: 'array',
items: {
type: 'object',
properties: {
userReference: { type: 'string' },
phone: {
type: 'string'
, pattern: "^\+[0-9]{9,12}$" // If I remove this line, the model is seen as valid (and no errors)
}
}
}
}
},
required: ['users'],
errorMessage: { _: "One or more of the fields in the 'legacy' data path are incorrect." }
};
const schemaSample = {
"users": [
{
"phone": "+25512345678", // should be valid
"userReference": "AAA"
},
{
"phone": "+5255 abc 12345678", // should be invalid
"userReference": "BBB"
}
]
};
var ajv = Ajv();
ajv.addSchema(schema, 'schema');
var valid = ajv.validate('schema', schemaSample);
if (valid) {
console.log('Model is valid!');
} else {
console.log('Model is invalid!');
}
Ссылка на JSFiddle: http://jsfiddle.net/xnw2b9zL/4/ (открытая консоль/отладчик чтобы увидеть полную ошибку)
"\+"
должно быть"\\+"
- person customcommander   schedule 05.06.2020