Проверка даты и времени схемы Json, включая конкретные даты

Я хотел бы знать, можно ли указать в схеме json, что строка имеет формат даты и времени и, ограниченный определенным интервалом.

В моем случае мне нужно проверить, что год представленной даты находится в интервале с 2006 по 2012 год.


person sherle    schedule 20.01.2014    source источник


Ответы (1)


В следующей версии стандарта (v5) предлагается ключевые слова formatMaximum/formatMinimum, которые сделают именно то, что вы хотели, но элегантным образом: они сочетаются с format, чтобы обеспечить минимальные/максимальные значения для конкретного формата.

В настоящее время (с v4) ваш единственный вариант — создать хак, используя pattern (например, ^20(0[6-9]|1[0-2])). Тем не менее, это совершенно ужасно, и лучше избегать, если это возможно.

person cloudfeet    schedule 20.01.2014
comment
Привет, вы знаете, когда можно будет использовать formatMaximum/formatMinimum? Я пробовал несколько примеров (здесь github.com/epoberezkin/ajv/blob/master/), но вывод всегда будет действительным json, даже если дата выходит за пределы допустимого диапазона. Также я включил флаг strictProperties. Ты знаешь, если я что-то пропущу? - person Zilev av; 03.03.2016
comment
Можете ли вы обновить свой ответ, пожалуйста? Ссылка мертва, а стандарт - v7. Это сейчас реализовано? - person Vampire; 30.06.2020
comment
Возможно, используйте ключевое слово regexp - stackoverflow.com/questions/45888524/ - person rofrol; 11.01.2021