2013-05-04 137 views
0

我有我的輸入過濾器的電子郵件地址,我想限制一個特定的電子郵件服務提供商,請幫助我與此。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

回答

0

添加一個正則表達式驗證:

 $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' 
         ), 
        ) 
       ), 
      ), 
     )));