【发布时间】:2021-09-02 13:44:09
【问题描述】:
我正在尝试使用应用程序脚本创建一个表单,但由于某种原因,它不允许在 TextItem 输入字段中进行最简单的电话号码验证。我只需要用户输入他们的 10 位数字,没有空格、破折号、点,包括区号。我知道这不是验证电话号码的技术“最佳”方式,但出于我们的目的,它是有效的。这是我必须生成该字段的代码部分。 (编辑以制作更可重复的示例)
function CreateForm() {
var form = FormApp.create('Test');
var tenantNum = form.addTextItem()
.setTitle("Tenant Phone #");
var phoneValid = FormApp.createTextValidation()
.setHelpText("Please enter valid phone number, 10-digits, no symbols or spaces.")
.requireTextMatchesPattern(/\d{10}/g)
.build();
tenantNum.setValidation(phoneValid);
console.log(form.getPublishedUrl())
}
我也尝试过其他方法,例如:
(没有捕获组或全局标记,两者都是单独的)
.requireTextMatchesPattern(/\d{10}/)
输入正则表达式作为字符串文字。
.requireTextMatchesPattern("\d{10}")
甚至是像傻瓜一样的东西。
.requireTextMatchesPattern(/[0-9]{10}/)
或
.requireTextMatchesPattern(/\d\d\d\d\d\d\d\d\d\d/)
只是看看它是否有效。我也试过.requireTextContainsPattern()。
每当您输入表单时,我都会收到以下回复:
请输入有效的电话号码,10 位数字,无符号或空格。
我唯一的想法是,用户是否输入字符串与数字可能会有些混淆,并且此方法仅适用于字符串。但是这个验证 当您手动将其输入到表单创建中时,正则表达式工作正常,所以我完全迷路了。任何帮助表示赞赏!
【问题讨论】:
-
TextValidationBuilder 类中没有 setHelpText() 方法
-
这是我从 Apps Script Docs 中提取的代码。 developers.google.com/apps-script/reference/forms/…
-
哦,我想这是同一个参考。但是看看方法。没有 setHelpText 所以我猜写这个例子的人可能搞砸了。
-
我向他们发送了反馈,让他们知道可能的错误。
-
无论如何都不起作用,现在它只是无法识别它并说“必须匹配模式”。
标签: regex forms google-apps-script