确保数据质量的一种方法是在表单的数据字段中添加约束条件。约束条件有助于防止用户输入无效或不可能的答案。例如,询问某人收入时,您想避免不切实际的值,如负数或极高的值。在表单中添加数据约束非常简单,只需按以下步骤操作:

  1. 在表单中添加一个名为"constraint"的新列。
  2. 在"constraint"列中,输入指定答案限制的公式。

示例

让我们考虑一个为个人收入添加约束的示例。约束要求收入在 0 到 1,000,000 之间。以下是设置约束的方法:

nameconstraint
Income. >= 0 & . <= 1000000

在上面的示例中,公式中的".“指回问题变量,代表用户为"Income"问题输入的值。约束 “. >= 0 && . <= 1000000” 确保输入的收入大于或等于 0 且小于或等于 1,000,000。

硬性约束

硬性约束在输入值不满足表达式时完全阻止表单提交。调查员无法继续,直到输入有效值。

要添加硬性约束,请在 constraint 列中输入表达式。可选地在 constraint_message 中添加人类可读的消息:

typenamelabelconstraintconstraint_message
integerage受访者年龄. > 0 and . <= 120年龄必须在 1 到 120 之间
decimaltemperature体温(°C). >= 35 and . <= 42体温必须在 35°C 到 42°C 之间
textphone电话号码regex(., '^[0-9]{10}$')请输入 10 位电话号码

多个条件

使用 and / or 组合条件:

  . >= 0 and . <= 100
  
  . = 'yes' or . = 'no'
  

使用 regex() 进行模式验证

regex(value, pattern) 函数根据正则表达式测试值:

typenamelabelconstraintconstraint_message
textemail邮箱地址regex(., '^[^@]+@[^@]+\.[^@]+$')请输入有效的邮箱地址
textzip_code邮政编码regex(., '^[0-9]{5}$')请输入 5 位邮政编码

在约束中引用其他字段

使用 ${fieldname} 引用其他问题的值:

typenamelabelconstraintconstraint_message
integerend_year结束年份. >= ${start_year}结束年份必须在开始年份之后
decimalloan_repaid已还款金额. <= ${loan_amount}还款金额不能超过贷款金额

软性警告

软性警告(也称为软性约束或警告)提醒调查员某个值看起来异常,但仍允许继续。当某个值在技术上有效但在统计上不太可能时,这很有用。

rtSurvey 支持使用 constraint 列的软性警告,或通过外观 soft 与注释字段组合使用。

最常见的模式是使用带有 relevant 表达式的注释标记可疑值,配合确认问题:

typenamelabelrelevant
integerchildren子女数量
notechildren_warning警告:您输入了 ${children} 个子女。请确认这是否正确。. > 15
triggerchildren_confirm确认子女数量正确${children} > 15

仅使用 constraint_message 的软性警告

对于更简单的软性警告,您可以措辞约束以对极端值发出警告,但仍允许较宽的范围:

typenamelabelconstraintconstraint_message
integerchildren子女数量. >= 0 and . <= 30此值看起来非常高。请核实。
此页面有帮助吗?