Zend framework2电子邮件验证为特定的地址,如Gmail和阻止特定的电子邮件地址

问题描述:

我有我的输入过滤器的电子邮件地址,我想限制一个特定的电子邮件服务提供商,请帮助我与此。Zend framework2电子邮件验证为特定的地址,如Gmail和阻止特定的电子邮件地址

我还有一个表格,我想让这个受限制的电子邮件服务提供者只在这里注册。请告诉我如何限制一个特定的电子邮件服务提供商,并以另一种形式只允许一个特定的电子邮件服务提供商。

在此先感谢

$inputFilter->add($factory->createInput(array(
       'name'  => 'email', 
       'required' => true, 
       'filters' => array(
        array('name' => 'StripTags'), 
        array('name' => 'StringTrim'), 
       ), 
       'validators' => array(
        array(
         'name' => 'EmailAddress', 
         'options' => array(
          'messages' => array( 
           'emailAddressInvalidFormat' => 'Email address format is not invalid', 
          ) 
         ), 
        ), 
        array ( 
         'name' => 'NotEmpty', 
         'options' => array( 
          'messages' => array( 
           'isEmpty' => 'Email address is required', 
          ) 
         ), 
        ), 
       ), 
      ))); 
+0

我可能只是使用的Zend \验证\正则表达式。我不确定你对两种不同形式的含义,但是你可以很容易地在两者中使用正则表达式验证器(当然有两种不同的正则表达式) – timdev 2013-05-05 06:53:31

添加一个正则表达式验证:

 $inputFilter->add($factory->createInput(array(
      'name'  => 'email', 
      'required' => true, 
      'filters' => array(
       array('name' => 'StripTags'), 
       array('name' => 'StringTrim'), 
      ), 
      'validators' => array(
       array(
        'name' => 'EmailAddress', 
        'options' => array(
         'messages' => array(
          'emailAddressInvalidFormat' => 'Email address format is not invalid', 
         ) 
        ), 
       ), 
       array (
        'name' => 'NotEmpty', 
        'options' => array(
         'messages' => array(
          'isEmpty' => 'Email address is required', 
         ) 
        ), 
       ), 
       array(
        'name' => 'Regex', 
        'options' => array(
         'pattern' => '/@gmail.com$/', 
         'messages' => array(
          'regexNotMatch' => 'You must have a gmail.com email address' 
         ), 
        ) 
       ), 
      ), 
     )));