【问题标题】:Validating email addresses in Google Forms在 Google 表单中验证电子邮件地址
【发布时间】:2012-05-18 09:36:00
【问题描述】:

我想使用 Google 表单来填充 Google 电子表格。其中一个字段是电子邮件地址,我需要根据我们组织的电子邮件列表验证这一点 - 换句话说,强制人们使用有效和现有的电子邮件地址。

我们的组织使用 Google Apps。该表单将由我们组织中的用户创建,并且只有来自我们组织/域的电子邮件地址才会被视为有效。

【问题讨论】:

    标签: google-apps-script google-forms


    【解决方案1】:

    现在您可以在字段中放置正则表达式:

    对于电子邮件:

    [a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+
    

    【讨论】:

      【解决方案2】:

      您可以使用实验性应用脚本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'));
      }
      

      【讨论】:

      • 谢谢。此行为是否可以由标准 Google 表单触发,还是必须由使用 Google App Scripts GUI 工具构建的表单触发?
      • Henrique 的解决方案很棒。您可以在表单提交后触发它,并通过强制捕获用户名将任何错误通过电子邮件发送给提交用户,或者您需要将此表单构建为 UiApp 实例。
      • @andyg1 是的,您可以从表单提交时触发的函数中调用它。
      • 您将如何使用它来验证表单并让用户更正错误?在接受不良数据后,我对向用户发送电子邮件并不真正感兴趣。
      • @RichardBronosky 这将是 Google 表单功能,但不可用。 Apps 脚本只能像所有者那样与表单交互,编辑/等并查看它的响应。实时表单的行为方式不会改变。
      【解决方案3】:

      电子邮件地址——下面的正则表达式应该匹配最常见的电子邮件地址格式,包括接受“+”号但没有完美解决方案的 Gmail 别名。

      [a-zA-Z0-9_\.\+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-\.]+
      

      你可以像这样使用:

      更多正则表达式:Useful Regular Expressions for Validating Input in Google Forms

      谢谢。

      【讨论】:

        【解决方案4】:

        修改答案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
        

        【讨论】:

          【解决方案5】:

          这不是一个 Google Apps 脚本问题,但是当您创建表单时,您可以选中一个复选框,上面写着“自动收集受访者的用户名。”

          【讨论】:

          • 这是给填写它的人的。我想要验证一个文本字段,以检查输入的内容是否既是有效的电子邮件地址,又是该组织的电子邮件地址。这就是为什么我认为这将是一个 Apps 脚本问题。
          【解决方案6】:

          您不需要脚本。只需向问题添加响应验证即可。在第一个字段中,选择“文本”;在第二个字段中,“包含”;在第三个字段中,“@'yourdomain'”——就是这样!

          【讨论】:

            猜你喜欢
            • 2023-04-10
            • 2014-06-12
            • 1970-01-01
            • 1970-01-01
            • 2012-09-27
            • 2020-03-02
            • 2012-08-10
            • 2018-03-13
            • 2011-09-02
            相关资源
            最近更新 更多