Gmail插件Card Service文本输入:最大长度与字母数字验证指引
Gmail插件Card Service文本输入框验证实现指导
一、调整文本输入框配置
在原有的TextInput配置中添加提示文本,明确告知用户输入规则,同时保留原有变更触发动作:
CardService.newTextInput() .setFieldName(`Field150`) .setTitle("Field150") .setHint("仅允许输入1个字母或数字") // 新增提示,明确规则 .setOnChangeAction(CardService.newAction() .setFunctionName("Field150"));
二、更新输入验证逻辑
修改Field150函数,同时实现最大长度限制和字母数字格式验证,并区分不同错误场景给出对应提示:
function Field150(e) { var inputFieldValue = e.formInput.Field150?.trim() || ""; // 处理空值或空格 console.log("inputFieldValue", inputFieldValue); var alphanumericRegex = /^[a-zA-Z0-9]$/; // 正则修改为仅匹配单个字母数字 // 先判断长度,再验证格式 if (inputFieldValue.length > 1) { return CardService.newActionResponseBuilder() .setNotification(CardService.newNotification() .setText("输入过长,仅允许1个字符")) .build(); } else if (!alphanumericRegex.test(inputFieldValue) && inputFieldValue !== "") { return CardService.newActionResponseBuilder() .setNotification(CardService.newNotification() .setText("输入无效,仅允许字母或数字")) .build(); } else if (inputFieldValue !== "") { console.log("Valid alphanumeric input: " + inputFieldValue); return CardService.newActionResponseBuilder() .setNotification(CardService.newNotification() .setText("输入有效")) .build(); } // 空输入时不返回提示,避免干扰用户 return CardService.newActionResponseBuilder().build(); }
关键改动说明:
- 长度限制:直接判断输入值的长度是否超过1,优先提示长度错误
- 正则优化:将原正则
/^[a-zA-Z0-9]+$/改为/^[a-zA-Z0-9]$/,确保仅匹配单个字母或数字 - 空值处理:加入空值/空格判断,避免空输入触发错误提示
- 错误区分:分别针对长度过长、格式无效给出明确提示,提升用户体验
内容的提问来源于stack exchange,提问作者Shiv Yadav
相关产品推荐
相关产品推荐

