【发布时间】:2012-05-18 09:36:00
【问题描述】:
我想使用 Google 表单来填充 Google 电子表格。其中一个字段是电子邮件地址,我需要根据我们组织的电子邮件列表验证这一点 - 换句话说,强制人们使用有效和现有的电子邮件地址。
我们的组织使用 Google Apps。该表单将由我们组织中的用户创建,并且只有来自我们组织/域的电子邮件地址才会被视为有效。
【问题讨论】:
标签: google-apps-script google-forms
我想使用 Google 表单来填充 Google 电子表格。其中一个字段是电子邮件地址,我需要根据我们组织的电子邮件列表验证这一点 - 换句话说,强制人们使用有效和现有的电子邮件地址。
我们的组织使用 Google Apps。该表单将由我们组织中的用户创建,并且只有来自我们组织/域的电子邮件地址才会被视为有效。
【问题讨论】:
标签: google-apps-script google-forms
现在您可以在字段中放置正则表达式:
对于电子邮件:
[a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+
【讨论】:
您可以使用实验性应用脚本Domain Services API。这是我的做法。
function isValidEmailInMyDomain(address) {
var parts = address.split('@');
if( parts.length != 2 )
return false;
if( parts[1] != UserManager.getDomain() )
return false;
try {
UserManager.getUser(parts[0]);
return true;
} catch(doesNotExist) {
return false;
}
}
function testFunction() { //check the menu View > Logs
Logger.log(isValidEmailInMyDomain('aEmailIn@yourDomain.com'));
}
【讨论】:
电子邮件地址——下面的正则表达式应该匹配最常见的电子邮件地址格式,包括接受“+”号但没有完美解决方案的 Gmail 别名。
[a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+
你可以像这样使用:
更多正则表达式:Useful Regular Expressions for Validating Input in Google Forms
谢谢。
【讨论】:
修改答案Romias (邮件 - 最小长度 3,域 - 最小长度 2)
[a-zA-Z0-9_\.\+-]{3,}@[a-zA-Z0-9-]{2,}\.[a-zA-Z0-9-\.]{2,}
// a@a.a = false
// aaa@aa.aa = true
【讨论】:
这不是一个 Google Apps 脚本问题,但是当您创建表单时,您可以选中一个复选框,上面写着“自动收集受访者的用户名。”
【讨论】:
您不需要脚本。只需向问题添加响应验证即可。在第一个字段中,选择“文本”;在第二个字段中,“包含”;在第三个字段中,“@'yourdomain'”——就是这样!
【讨论】: