On this page
code
验证回答
确保数据质量的一种方法是在表单的数据字段中添加约束条件。约束条件有助于防止用户输入无效或不可能的答案。例如,询问某人收入时,您想避免不切实际的值,如负数或极高的值。在表单中添加数据约束非常简单,只需按以下步骤操作:
- 在表单中添加一个名为"constraint"的新列。
- 在"constraint"列中,输入指定答案限制的公式。
示例
让我们考虑一个为个人收入添加约束的示例。约束要求收入在 0 到 1,000,000 之间。以下是设置约束的方法:
name | constraint |
|---|---|
| Income | . >= 0 & . <= 1000000 |
在上面的示例中,公式中的".“指回问题变量,代表用户为"Income"问题输入的值。约束 “. >= 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 | 邮箱地址 | regex(., '^[^@]+@[^@]+\.[^@]+$') | 请输入有效的邮箱地址 | |
| 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} | 还款金额不能超过贷款金额 |
软性警告
软性警告(也称为软性约束或警告)提醒调查员某个值看起来异常,但仍允许继续。当某个值在技术上有效但在统计上不太可能时,这很有用。
rtSurvey 支持使用 constraint 列的软性警告,或通过外观 soft 与注释字段组合使用。
最常见的模式是使用带有 relevant 表达式的注释标记可疑值,配合确认问题:
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 以上的温度)。对统计上不太可能但并非不可能的值使用软性警告——您不希望阻止合法的边缘情况。
此页面有帮助吗?