Dynamische JS-Schema-Schlüsselvalidierung

8

Vor einem Problem mit der Schema-Validierung.

Schema:

%Vor%

json:

%Vor%

Hier ist die Schlüssel-E-Mail-Adresse dynamisch, irgendwie validiert sie Regex für die E-Mail-Validierung nicht.

Können Sie mir bitte raten, das Schema zu korrigieren?

Ich validiere mit Ссылка

    
suri babu 30.12.2014, 12:29
quelle

2 Antworten

7

Ich sehe in deinem Muster, dass du vergessen hast, einigen Zeichen zu entkommen oder es nicht richtig gemacht hast:

%Vor%

und es verursacht den Fehler, den Sie sehen können, wenn Sie die Maus über den Link am oberen Rand des Validators halten:

sollte es sein:

%Vor%

oder ohne die inneren / Klassenzeichen zu umgehen, aber ich würde das erste Muster verwenden, weil ich denke, dass seine Absicht klarer ist:

%Vor%

Sie müssen zwei \ haben, weil das erste \ ein Escape für das zweite \ ist. Mit einem einzigen würde es nicht funktionieren, denn es gibt keine Escape-Sequenz wie \. oder \+ in Javascript. Sie möchten ein \ im Muster selbst haben.

Allerdings wird bei json schema patternProperties standardmäßig zwischen Groß- und Kleinschreibung unterschieden. Daher müssen Sie Ihr E-Mail-Muster erweitern, indem Sie a-z hinzufügen:

%Vor%

(Ich habe keine andere Möglichkeit gefunden, die Groß- / Kleinschreibung zu ignorieren)

Sie müssen auch alle anderen Eigenschaftsnamen ausschließen, indem Sie "additionalProperties": false neben patternProperties hinzufügen oder andernfalls alles andere fangen, das nicht mit dem Muster übereinstimmt.

Das Arbeitsschema sollte dann so aussehen:

%Vor%

Ich habe es getestet: Ссылка

    
t3chb0t 30.12.2014, 13:28
quelle
4

Das Schema gemäß Entwurf 04 wurde geändert:

%Vor%     
suri babu 31.12.2014 10:45
quelle