setMessage( __('"User Name" is required. Enter and try again.'), \Zend_Validate_NotEmpty::IS_EMPTY ); $firstNameNotEmpty = new NotEmpty(); $firstNameNotEmpty->setMessage( __('"First Name" is required. Enter and try again.'), \Zend_Validate_NotEmpty::IS_EMPTY ); $lastNameNotEmpty = new NotEmpty(); $lastNameNotEmpty->setMessage( __('"Last Name" is required. Enter and try again.'), \Zend_Validate_NotEmpty::IS_EMPTY ); $emailValidity = new EmailAddress(); $emailValidity->setMessage( __('Please enter a valid email.'), \Zend_Validate_EmailAddress::INVALID ); /** @var $validator \Magento\Framework\Validator\DataObject */ $validator->addRule( $userNameNotEmpty, 'username' )->addRule( $firstNameNotEmpty, 'firstname' )->addRule( $lastNameNotEmpty, 'lastname' )->addRule( $emailValidity, 'email' ); return $validator; } /** * Adds validation rule for user password * * @param \Magento\Framework\Validator\DataObject $validator * @return \Magento\Framework\Validator\DataObject */ public function addPasswordRules(\Magento\Framework\Validator\DataObject $validator) { $passwordNotEmpty = new NotEmpty(); $passwordNotEmpty->setMessage(__('Password is required field.'), NotEmpty::IS_EMPTY); $minPassLength = self::MIN_PASSWORD_LENGTH; $passwordLength = new StringLength(['min' => $minPassLength, 'encoding' => 'UTF-8']); $passwordLength->setMessage( __('Your password must be at least %1 characters.', $minPassLength), \Zend_Validate_StringLength::TOO_SHORT ); $passwordChars = new Regex('/[a-z].*\d|\d.*[a-z]/iu'); $passwordChars->setMessage( __('Your password must include both numeric and alphabetic characters.'), \Zend_Validate_Regex::NOT_MATCH ); $validator->addRule( $passwordNotEmpty, 'password' )->addRule( $passwordLength, 'password' )->addRule( $passwordChars, 'password' ); return $validator; } /** * Adds validation rule for user password confirmation * * @param \Magento\Framework\Validator\DataObject $validator * @param string $passwordConfirmation * @return \Magento\Framework\Validator\DataObject */ public function addPasswordConfirmationRule( \Magento\Framework\Validator\DataObject $validator, $passwordConfirmation ) { $passwordConfirmation = new \Zend_Validate_Identical($passwordConfirmation); $passwordConfirmation->setMessage( __('Your password confirmation must match your password.'), \Zend_Validate_Identical::NOT_SAME ); $validator->addRule($passwordConfirmation, 'password'); return $validator; } }