Validating responses
Ένας τρόπος για να διασφαλίσετε την ποιότητα δεδομένων είναι η προσθήκη περιορισμών στα πεδία δεδομένων της φόρμας σας. Οι περιορισμοί βοηθούν στην αποτροπή εισαγωγής μη έγκυρων ή αδύνατων απαντήσεων. Για παράδειγμα, κατά την ερώτηση για το εισόδημα ενός ατόμου, θέλετε να αποφύγετε μη ρεαλιστικές τιμές, όπως αρνητικοί αριθμοί ή υπερβολικά υψηλές τιμές. Η προσθήκη περιορισμών δεδομένων στη φόρμα σας είναι εύκολη. Απλώς ακολουθήστε τα παρακάτω βήματα:
- Προσθέστε μια νέα στήλη με όνομα “constraint” στη φόρμα σας.
- Στη στήλη “constraint”, εισαγάγετε έναν τύπο που καθορίζει τα όρια στην απάντηση.
Παράδειγμα
Εξετάστε ένα παράδειγμα όπου θέλουμε να προσθέσουμε περιορισμό για το εισόδημα ενός ατόμου. Ο περιορισμός απαιτεί το εισόδημα να είναι μεταξύ $0 και $1.000.000. Δείτε πώς μπορείτε να ρυθμίσετε τον περιορισμό:
name | constraint |
|---|---|
| Income | . >= 0 & . <= 1000000 |
Στο παραπάνω παράδειγμα, το “.” στον τύπο αναφέρεται στη μεταβλητή ερώτησης, η οποία αντιπροσωπεύει την τιμή που εισήγαγε ο χρήστης. Ο περιορισμός “. >= 0 && . <= 1000000” διασφαλίζει ότι το εισαγόμενο εισόδημα είναι μεγαλύτερο ή ίσο από 0 και μικρότερο ή ίσο από 1.000.000.
Σκληρός περιορισμός
Ένας σκληρός περιορισμός μπλοκάρει εντελώς την υποβολή φόρμας εάν η εισαγόμενη τιμή δεν ικανοποιεί την έκφραση. Ο απογραφέας δεν μπορεί να προχωρήσει μέχρι να εισάγει έγκυρη τιμή.
Για να προσθέσετε σκληρό περιορισμό, εισαγάγετε την έκφρασή σας στη στήλη constraint. Προαιρετικά προσθέστε αναγνώσιμο μήνυμα στο constraint_message:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | age | Ηλικία ερωτώμενου | . > 0 and . <= 120 | Η ηλικία πρέπει να είναι μεταξύ 1 και 120 |
| decimal | temperature | Θερμοκρασία σώματος (°C) | . >= 35 and . <= 42 | Η θερμοκρασία πρέπει να είναι μεταξύ 35°C και 42°C |
| text | phone | Αριθμός τηλεφώνου | regex(., '^[0-9]{10}$') | Εισαγάγετε αριθμό τηλεφώνου 10 ψηφίων |
Πολλαπλές συνθήκες
Συνδυάστε συνθήκες με and / or:
. >= 0 and . <= 100
. = 'yes' or . = 'no'
Χρήση regex() για επικύρωση μοτίβου
Η συνάρτηση regex(value, pattern) ελέγχει μια τιμή έναντι κανονικής έκφρασης:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| text | Διεύθυνση email | regex(., '^[^@]+@[^@]+\.[^@]+$') | Εισαγάγετε έγκυρη διεύθυνση email | |
| text | zip_code | Ταχυδρομικός κωδικός | regex(., '^[0-9]{5}$') | Εισαγάγετε ταχυδρομικό κωδικό 5 ψηφίων |
Αναφορά άλλων πεδίων σε περιορισμό
Χρησιμοποιήστε ${fieldname} για αναφορά τιμών από άλλες ερωτήσεις:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | end_year | Έτος λήξης | . >= ${start_year} | Το έτος λήξης πρέπει να είναι μετά το έτος έναρξης |
| decimal | loan_repaid | Ποσό αποπληρωμής | . <= ${loan_amount} | Δεν μπορείτε να αποπληρώσετε περισσότερο από το ποσό δανείου |
Μαλακή ειδοποίηση
Μια μαλακή ειδοποίηση (γνωστή επίσης ως μαλακός περιορισμός ή προειδοποίηση) προειδοποιεί τον απογραφέα ότι μια τιμή φαίνεται ασυνήθιστη, αλλά εξακολουθεί να του επιτρέπει να προχωρήσει.
Το πιο κοινό πρότυπο είναι να χρησιμοποιείτε μια σημείωση με έκφραση relevant που επισημαίνει την ύποπτη τιμή, σε συνδυασμό με ερώτηση acknowledge για επιβεβαίωση:
type | name | label | relevant |
|---|---|---|---|
| integer | children | Αριθμός παιδιών | |
| note | children_warning | Προειδοποίηση: Εισαγάγατε ${children} παιδιά. Παρακαλώ επιβεβαιώστε ότι αυτό είναι σωστό. | . > 15 |
| trigger | children_confirm | Επιβεβαιώστε ότι ο αριθμός παιδιών είναι σωστός | ${children} > 15 |
Μαλακή ειδοποίηση μόνο με constraint_message
Για απλούστερη μαλακή προειδοποίηση, μπορείτε να διατυπώσετε τον περιορισμό για προειδοποίηση σε ακραίες τιμές:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | children | Αριθμός παιδιών | . >= 0 and . <= 30 | Αυτή η τιμή φαίνεται πολύ υψηλή. Παρακαλώ επαληθεύστε. |
Η διάκριση μεταξύ σκληρών και μαλακών περιορισμών είναι σημαντική για την ποιότητα δεδομένων. Χρησιμοποιήστε σκληρούς περιορισμούς για λογικά αδύνατες τιμές (αρνητικές ηλικίες, θερμοκρασίες πάνω από 100°C). Χρησιμοποιήστε μαλακές ειδοποιήσεις για στατιστικά απίθανες αλλά όχι αδύνατες τιμές.