Validera svar
Ett sätt att säkerställa datakvalitet är att lägga till begränsningar i datafälten i ditt formulär. Begränsningar förhindrar användare från att ange ogiltiga eller omöjliga svar. Till exempel, när du frågar om en persons inkomst, vill du undvika orealistiska värden som negativa tal eller extremt höga värden. Att lägga till databegränsningar i ditt formulär är enkelt. Följ bara stegen nedan:
- Lägg till en ny kolumn med namnet “constraint” i ditt formulär.
- I kolumnen “constraint” anger du en formel som specificerar gränserna för svaret.
Exempel
Låt oss titta på ett exempel där vi vill lägga till en begränsning för en persons inkomst. Begränsningen kräver att inkomsten är mellan 0 kr och 1 000 000 kr. Så här kan du ställa in begränsningen:
name | constraint |
|---|---|
| Inkomst | . >= 0 & . <= 1000000 |
I exemplet ovan refererar “.” i formeln tillbaka till frågevariabeln, som representerar värdet som angetts av användaren för frågan “Inkomst”. Begränsningen “. >= 0 && . <= 1000000” säkerställer att den angivna inkomsten är större än eller lika med 0 och mindre än eller lika med 1 000 000.
Hård begränsning
En hård begränsning blockerar formulärinlämning helt om det angivna värdet inte uppfyller uttrycket. Intervjuaren kan inte fortsätta förrän de anger ett giltigt värde.
För att lägga till en hård begränsning, ange ditt uttryck i kolumnen constraint. Lägg valfritt till ett läsbart meddelande i constraint_message:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | age | Respondentens ålder | . > 0 and . <= 120 | Ålder måste vara mellan 1 och 120 |
| decimal | temperature | Kroppstemperatur (°C) | . >= 35 and . <= 42 | Temperaturen måste vara mellan 35°C och 42°C |
| text | phone | Telefonnummer | regex(., '^[0-9]{10}$') | Ange ett 10-siffrigt telefonnummer |
Flera villkor
Kombinera villkor med and / or:
. >= 0 and . <= 100
. = 'yes' or . = 'no'
Använda regex() för mönstervalidering
Funktionen regex(value, pattern) testar ett värde mot ett reguljärt uttryck:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| text | E-postadress | regex(., '^[^@]+@[^@]+\.[^@]+$') | Ange en giltig e-postadress | |
| text | zip_code | Postnummer | regex(., '^[0-9]{5}$') | Ange ett 5-siffrigt postnummer |
Referera till andra fält i en begränsning
Använd ${fieldname} för att referera till värden från andra frågor:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | end_year | Slutår | . >= ${start_year} | Slutåret måste vara efter startåret |
| decimal | loan_repaid | Återbetalt belopp | . <= ${loan_amount} | Kan inte återbetala mer än lånebeloppet |
Mjuk varning
En mjuk varning (kallas också mjuk begränsning eller varning) varnar intervjuaren om att ett värde verkar ovanligt, men låter dem ändå fortsätta. Detta är användbart när ett värde är tekniskt giltigt men statistiskt osannolikt.
rtSurvey stöder mjuka varningar. Det vanligaste mönstret är att använda en note med ett relevant-uttryck som flaggar det misstänkta värdet, parat med en acknowledge-fråga för att bekräfta:
type | name | label | relevant |
|---|---|---|---|
| integer | children | Antal barn | |
| note | children_warning | Varning: Du angav ${children} barn. Bekräfta att detta är korrekt. | . > 15 |
| trigger | children_confirm | Bekräfta att antalet barn är korrekt | ${children} > 15 |
Skillnaden mellan hårda och mjuka begränsningar är viktig för datakvaliteten. Använd hårda begränsningar för logiskt omöjliga värden (negativa åldrar, temperaturer över 100°C). Använd mjuka varningar för statistiskt osannolika men inte omöjliga värden — du vill inte blockera legitima extremfall.