# Eingabevalidierung

## ☑️ Welche Eingabevalidierung?

Neben der Überprüfung, ob in einem Feld ein Wert eingegeben wurde, können Sie auch weitergehende Regeln mithilfe regulärer Ausdrücke festlegen, um sicherzustellen, dass der vom Befragten eingegebene Text bestimmten Bedingungen entspricht.

Sie können auch die **maximale Zeichenlänge** festlegen, die in Ihrem Feld eingegeben werden darf.

![](https://133942686-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M8fLhS0bmfBRyq0HdUm%2F-MBxJW6_rwxooZXjfBZJ%2F-MBxSXjb6_rt4xDgQCuU%2Fimage.png?alt=media\&token=8c2583e9-c6bb-412f-9f33-ff2e50b049b9)

{% hint style="info" %}
Fortgeschrittene Benutzer können zudem ein benutzerdefiniertes Feld basierend auf [Antworttyp](https://docs.ngsurvey.com/de/form-management/form-designer/answers/answer-types/creating-new-type) unter Verwendung von  [benutzerdefiniertem javascript-Validierungscode](https://docs.ngsurvey.com/de/form-management/form-designer/answers/answer-types/creating-new-type/custom-validation-code) erstellen, um die Eingaben der Befragten zu validieren.
{% endhint %}

## 🔢 Reguläre Ausdrücke

Ein [regulärer Ausdruck](https://en.wikipedia.org/wiki/Regular_expression) (regex) ist ein stringbasiertes Suchmuster, das überprüft, ob der vom Befragten eingegebene Text dem Ausdrucksmuster entspricht oder nicht.&#x20;

![](https://133942686-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M8fLhS0bmfBRyq0HdUm%2F-MBhEHQX1dJgLFMgYGxh%2F-MBhF_WSjl4w9Zy_E3R9%2Fimage.png?alt=media\&token=0717f3d7-23b5-428d-8ee6-d83a28f3a34c)

Mit diesen Mustern prüfen Sie einen Wert anhand von Mustern wie E-Mails, Zahlen, Postleitzahlen usw. ... Fast jedes [Feld](https://docs.ngsurvey.com/de/form-management/form-designer/answers/answer-types/entry-field) basierte Typ kann gegen einen regulären Ausdruck validiert werden, der mit dem Editor für reguläre Ausdrücke erstellt wurde.

## ➕ Hinzufügen eines regulären Ausdrucks

Um einen regulären Ausdruck hinzuzufügen, gehen Sie zur [Antwort-Eigenschaften](https://docs.ngsurvey.com/de/form-management/form-designer/answers/answer-properties) Seite und klicken Sie auf das **+** Symbol

![](https://133942686-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M8fLhS0bmfBRyq0HdUm%2F-MBxlrzsAiMipW8XigrE%2F-MBxmVt6uM9ItWMtBWkC%2Fimage.png?alt=media\&token=fe1c1c57-6254-48b7-a217-05d420ddf338)

{% hint style="info" %}
Reguläre Ausdrücke sind nur für den Benutzer verfügbar, der sie erstellt hat. Wenn Sie Ihren regulären Ausdruck mit allen anderen ngSurvey-Benutzern teilen möchten, können Sie seine **eingebaute** Eigenschaft aktivieren.
{% endhint %}

## 🔅 Eigenschaften des regulären Ausdrucks

* **`Name`** ist der Anzeigename des regulären Ausdrucks.
* **`Regulärer Ausdruck`** ist das eigentliche Muster des regulären Ausdrucks, das verwendet wird, um die Antwort des Befragten abzugleichen.
* **`Fehlermeldung`** Fehlermeldung, die dem Befragten angezeigt wird, wenn seine Eingabe nicht dem Muster entspricht.
* **`Eingebaut`** ermöglicht es uns, den regulären Ausdruck mit allen anderen Benutzern zu teilen.

{% hint style="info" %}
Sie finden vorgefertigte reguläre Ausdrücke und können Ihre unter  <https://regex101.com/>
{% endhint %}

## 🔢 Javascript

Für feldbasierte Antworten können Sie die Javascript-Validierung und die Validierungsnachrichten-Eigenschaft im [Antwort-Eigenschaften](https://docs.ngsurvey.com/de/form-management/form-designer/answers/answer-properties/field-properties) festlegen, um benutzerdefinierten Javascript-Code zur Validierung Ihrer Antwort zu verwenden. \
\
Im untenstehenden Code wird respondentAnswerValue durch den tatsächlichen Wert des Feldes ersetzt. Wenn der Code false zurückgibt, blockiert ngSurvey das Absenden oder die Navigation und zeigt die Validierungsnachricht an.

```
return (respondentAnswerValue >= 18 && respondentAnswerValue <= 99);
```

Im untenstehenden Code verwenden wir getAnswer im Validierungskontext, um einen Wert aus einer anderen Antwort in der Umfrage zu erhalten. Hier suchen wir nach einer Antwort mit dem Reporting-Alias "hh\_people".&#x20;

<pre><code><a data-footnote-ref href="#user-content-fn-1">re</a>turn (respondentAnswerValue &#x3C;= validationContext.getAnswer('hh_people'));
</code></pre>

Der ValidationContext unterstützt die folgenden Methoden und Eigenschaften

```typescript
export class ValidationContext {
   answer:Answer, // Aktuelle Antwort, die validiert wird
   question:Question, // Aktuelle Frage der zu validierenden Antwort
   questions:Question[], // Alle Fragen der Umfrage
   answers: Answer[];  // Alle Antworten der Umfrage

  public getAnswer(id: string): string // Holt den Wert einer Antwort, indem der Reporting-Alias oder die ID nachgeschlagen wird
  public isSelectedAnswer(id: string, value: string): boolean // Sucht eine Frage anhand ihrer ID oder ihres Reporting-Alias und prüft, ob der angegebene Wert ausgewählt ist 
}

```

[^1]:
