From 1c3165984c0e1c8c3f627b5b65d8dc29731d5292 Mon Sep 17 00:00:00 2001 From: tom Date: Sat, 27 Apr 2024 19:02:02 +0200 Subject: [PATCH 1/5] update validation.de.md --- docs/basics/validation.de.md | 65 +++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/docs/basics/validation.de.md b/docs/basics/validation.de.md index 00f80472..212fbc28 100644 --- a/docs/basics/validation.de.md +++ b/docs/basics/validation.de.md @@ -169,4 +169,67 @@ Die erste Überprüfung verwendet `!` als Operator, was bedingt, dass der Wert n validations.add("favoriteColor", as: String.self, is: .in("red", "blue", "green"), required: false) ``` -Die Überprüfung verwendet die Bedingung *in*, was bedingt, dass der Wert mit einer der Angaben im Beispiel (red, blue, green) übereinstimmen muss. Mit dem Parameter *required:* legen wir fest, dass die Überprüfung nicht fehlschlägt, sollte der Wert in der Anfrage fehlen. \ No newline at end of file +Die Überprüfung verwendet die Bedingung *in*, was bedingt, dass der Wert mit einer der Angaben im Beispiel (red, blue, green) übereinstimmen muss. Mit dem Parameter *required:* legen wir fest, dass die Überprüfung nicht fehlschlägt, sollte der Wert in der Anfrage fehlen. + +## Benutzerdefinierte Validatoren + +Durch die Erstellung eines benutzerdefinierten Validators für Postleitzahlen kann die Funktionalität des Validierungs-Frameworks erweitert werden. In diesem Abschnitt erklären wir die Schritte zum Erstellen eines benutzerdefinierten Validators zur Validierung von Postleitzahlen. + +Zunächst wird ein neuer Typ erstellt, um die Ergebnisse der `ZipCode`-Validierung darzustellen. Diese Struktur ist dafür verantwortlich, zu melden, ob eine bestimmte Zeichenfolge eine gültige Postleitzahl ist. + +```swift +extension ValidatorResults { + /// Represents the result of a validator that checks if a string is a valid zip code. + public struct ZipCode { + /// Indicates whether the input is a valid zip code. + public let isValidZipCode: Bool + } +} +``` + +Als Nächstes wird der neue Typ an `ValidatorResult` angepasst, das das von einem benutzerdefinierten Validator erwartete Verhalten definiert. + +```swift +extension ValidatorResults.ZipCode: ValidatorResult { + public var isFailure: Bool { + !self.isValidZipCode + } + + public var successDescription: String? { + "is a valid zip code" + } + + public var failureDescription: String? { + "is not a valid zip code" + } +} +``` + +Finally, implement the validation logic for zip codes. Use a regular expression to check whether the input string matches the format of a USA zip code. + +Abschließend wird die Validierungslogik für Postleitzahlen implementiert. Dabei wird ein regulärer Ausdruck verwendet, um zu prüfen, ob die Eingabezeichenfolge dem Format einer US-amerikanischen Postleitzahl entspricht. + +```swift +private let zipCodeRegex: String = "^\\d{5}(?:[-\\s]\\d{4})?$" + +extension Validator where T == String { + /// Validates whether a `String` is a valid zip code. + public static var zipCode: Validator { + .init { input in + guard let range = input.range(of: zipCodeRegex, options: [.regularExpression]), + range.lowerBound == input.startIndex && range.upperBound == input.endIndex + else { + return ValidatorResults.ZipCode(isValidZipCode: false) + } + return ValidatorResults.ZipCode(isValidZipCode: true) + } + } +} +``` + +Nachdem der benutzerdefinierte `zipCode`-Validator definiert wurde, kann er zum Validieren von Postleitzahlen in einer Anwendung verwendet werden. Dazu muss einfach die folgende Zeile zum Validierungscode hinzugefügt werden: + +```swift +validations.add("zipCode", as: String.self, is: .zipCode) +``` + From d3b88c280b4931db5135ebd7635ac88e15a1ae17 Mon Sep 17 00:00:00 2001 From: tom Date: Sat, 27 Apr 2024 19:03:55 +0200 Subject: [PATCH 2/5] update validation.de.md --- docs/basics/validation.de.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/basics/validation.de.md b/docs/basics/validation.de.md index 212fbc28..187641da 100644 --- a/docs/basics/validation.de.md +++ b/docs/basics/validation.de.md @@ -205,8 +205,6 @@ extension ValidatorResults.ZipCode: ValidatorResult { } ``` -Finally, implement the validation logic for zip codes. Use a regular expression to check whether the input string matches the format of a USA zip code. - Abschließend wird die Validierungslogik für Postleitzahlen implementiert. Dabei wird ein regulärer Ausdruck verwendet, um zu prüfen, ob die Eingabezeichenfolge dem Format einer US-amerikanischen Postleitzahl entspricht. ```swift From 8a07f296568f7235f62ac08d0a27704e8a447833 Mon Sep 17 00:00:00 2001 From: tom Date: Thu, 25 Jul 2024 16:30:26 +0200 Subject: [PATCH 3/5] fix spelling --- docs/basics/validation.de.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/basics/validation.de.md b/docs/basics/validation.de.md index 187641da..f389750b 100644 --- a/docs/basics/validation.de.md +++ b/docs/basics/validation.de.md @@ -175,8 +175,7 @@ Die Überprüfung verwendet die Bedingung *in*, was bedingt, dass der Wert mit e Durch die Erstellung eines benutzerdefinierten Validators für Postleitzahlen kann die Funktionalität des Validierungs-Frameworks erweitert werden. In diesem Abschnitt erklären wir die Schritte zum Erstellen eines benutzerdefinierten Validators zur Validierung von Postleitzahlen. -Zunächst wird ein neuer Typ erstellt, um die Ergebnisse der `ZipCode`-Validierung darzustellen. Diese Struktur ist dafür verantwortlich, zu melden, ob eine bestimmte Zeichenfolge eine gültige Postleitzahl ist. - +Zunächst erstellen wir einen neuen Typ, um die Ergebnisse der Validierung darzustellen. Diese Struktur ist dafür verantwortlich, zu melden, ob eine bestimmte Zeichenfolge eine gültige Postleitzahl ist. ```swift extension ValidatorResults { /// Represents the result of a validator that checks if a string is a valid zip code. @@ -225,7 +224,7 @@ extension Validator where T == String { } ``` -Nachdem der benutzerdefinierte `zipCode`-Validator definiert wurde, kann er zum Validieren von Postleitzahlen in einer Anwendung verwendet werden. Dazu muss einfach die folgende Zeile zum Validierungscode hinzugefügt werden: +Nachdem die neue Vorlage definiert wurde, kann sie in der Anwendung verwendet werden: ```swift validations.add("zipCode", as: String.self, is: .zipCode) From 6a05075b74ef69c105e2549a5fda514aecd00ff3 Mon Sep 17 00:00:00 2001 From: tom Date: Thu, 25 Jul 2024 16:42:56 +0200 Subject: [PATCH 4/5] fix spelling --- docs/basics/validation.de.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/basics/validation.de.md b/docs/basics/validation.de.md index f389750b..e45e9834 100644 --- a/docs/basics/validation.de.md +++ b/docs/basics/validation.de.md @@ -224,6 +224,7 @@ extension Validator where T == String { } ``` + Nachdem die neue Vorlage definiert wurde, kann sie in der Anwendung verwendet werden: ```swift From 0ab37744fe56f8fbcb3a1b42882547c2001889e1 Mon Sep 17 00:00:00 2001 From: tom Date: Thu, 25 Jul 2024 16:45:01 +0200 Subject: [PATCH 5/5] fix spelling --- docs/basics/validation.de.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/basics/validation.de.md b/docs/basics/validation.de.md index e45e9834..bfec29ba 100644 --- a/docs/basics/validation.de.md +++ b/docs/basics/validation.de.md @@ -173,7 +173,7 @@ Die Überprüfung verwendet die Bedingung *in*, was bedingt, dass der Wert mit e ## Benutzerdefinierte Validatoren -Durch die Erstellung eines benutzerdefinierten Validators für Postleitzahlen kann die Funktionalität des Validierungs-Frameworks erweitert werden. In diesem Abschnitt erklären wir die Schritte zum Erstellen eines benutzerdefinierten Validators zur Validierung von Postleitzahlen. +Durch die Erstellung einer eigenen Regelvorlage können wir Vapors bestehendes Regelwerk erweitern. Im folgenden Abschnitt erstellen wir eine neue Vorlage, um eine Postleitzahl zu gegenzuprüfen. Zunächst erstellen wir einen neuen Typ, um die Ergebnisse der Validierung darzustellen. Diese Struktur ist dafür verantwortlich, zu melden, ob eine bestimmte Zeichenfolge eine gültige Postleitzahl ist. ```swift