Ich möchte ein Regexp-Muster für ein Feld basierend auf den Daten in einem anderen angeben. Ist das möglich? Ich habe Switch und $ Daten versucht, aber nicht sicher, wie man sie benutzt. zum Beispiel, wenn Daten wie folgt aussehen:ajv bedingte Schema-Validierung basierend auf Daten
{
"contacts":[
{
"mode":"Email",
"contact":"[email protected]"
},
{
"mode":"Phone",
"contact":"111-555-1234"
}
]
}
und Schema sieht ungefähr so aus:
"$schema":"http://json-schema.org/draft-04/schema#",
"type":"object",
"properties":{
"Contacts":{
"type":"array",
"minItems":1,
"items":{
"type":"object",
"properties":{
"mode":{
"type":"string",
"enum":[
"Email",
"Phone"
]
},
"contact":{
"type":"string",
"pattern":"?????"
}
},
"required":[
"mode",
"contact"
]
}
}
}
}
Wie kann ich das Muster des Kontaktsatzes basierend auf Daten in Modus, so dass, wenn Modus E-Mail, Es validiert den Kontakt mit einem Regexp für ein E-Mail-Format, und wenn der Modus Telefon ist, validiert es den Kontakt mit einem Regexp für ein Telefonformat? Ich habe die Regexp für jeden. Ich brauche die Logik, um das eine oder das andere zu wählen.