Google Forms多选/复选框other选项是否可添加RegEx正则校验
Google Forms「其他」输入项正则校验相关问题解答
- 原生功能限制:Google Forms官方未对多选题、复选框题型的「其他」自定义输入选项开放单独的正则校验配置入口,原生正则校验能力仅覆盖短回答、长回答、日期等纯输入类题型,无法直接对选择类题型的附加输入内容做规则限制。
- 可通过Google Apps Script实现该需求,核心实现逻辑如下:
- 给目标表单绑定
onFormSubmit触发事件,用户提交表单后自动触发校验逻辑 - 从提交的响应中提取对应多选/复选框题的返回值,筛选出非预设选项的用户自定义输入内容
- 对自定义内容运行正则匹配校验,不符合规则时可按需执行删除提交记录、给填写人推送规则不符通知等操作
- 给目标表单绑定
- 参考实现代码示例:
function validateOtherInput(e) { // 可替换为自定义正则规则,示例为校验11位中国大陆手机号 const customRegex = /^1[3-9]\d{9}$/; // 替换为需要校验的选择类题目标题 const targetQuestionTitle = "请选择你常用的联系方式"; // 替换为该题目的所有预设选项列表 const presetOptionList = ["微信", "QQ", "邮箱"]; const submitResponses = e.response.getItemResponses(); for (const itemRes of submitResponses) { if (itemRes.getItem().getTitle() === targetQuestionTitle) { const answer = itemRes.getResponse(); // 兼容复选框返回数组、单选/多选返回字符串的情况 const answerList = Array.isArray(answer) ? answer : [answer]; for (const ans of answerList) { // 仅校验非预设的其他输入内容 if (!presetOptionList.includes(ans)) { if (!customRegex.test(ans)) { // 校验不通过,删除本次提交记录 e.response.delete(); } } } break; } } }
- 注意事项:仅通过Apps Script触发器只能实现提交后校验,如果需要填写阶段实时校验、提交前就弹出错误提示,需要搭配自定义前端实现,原生表单不支持提交前拦截校验其他输入内容。
内容的提问来源于stack exchange,提问作者user13708028
相关产品推荐
相关产品推荐

