LC
Validar E-Mail separados por ponto e virgula
Precisei validar um campo do tipo e-mail, só que este campo poderia aceitar mais de um e-mail, sendo separados por ponto e virgula ou virgula ou espaço, então fiz um validador de e-mail, copiando o atual TEmailValidator, ficou assim:
Salvei o arquivo na pasta applibvalidator
Nomeando como : TEmailValidaPontoVirgula.class.php
Usar da mesma forma, exemplos:
$email->addValidation('E-Mail', new TEmailValidaPontoVirgula());
ou assim no onSave:
$validador = new TEmailValidaPontoVirgula;
$validador->validate('E-Mail', $object->email);
$this->form->validate();
Segue em anexo
- <?php
- /**
- * Email validation com ponto e virgula
- *
- * @version 5.0
- * @package validator
- * @author Pablo Dall'Oglio
- * @copyright Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
- * @license http://www.adianti.com.br/framework-license
- *
- * @alterado Incluído rotina Validação para e-mail com ponto-e-virgula - Leandro - Imprime Informática - 02/02/2018
- */
- class TEmailValidaPontoVirgula extends TFieldValidator
- {
- /**
- * Validate a given value
- * @param $label Identifies the value to be validated in case of exception
- * @param $value Value to be validated
- * @param $parameters aditional parameters for validation
- */
- public function validate($label, $value, $parameters = NULL)
- {
- // cria um array com os e-mails
- $emails = preg_split('/[;, ]/', $value, -1, PREG_SPLIT_NO_EMPTY);
- // faz leitura de cada e-mail
- foreach ($emails as $email)
- {
- $filter = filter_var(trim($email), FILTER_VALIDATE_EMAIL);
- if ($filter === FALSE)
- {
- throw new Exception(AdiantiCoreTranslator::translate('The field ^1 contains an invalid e-mail', $label));
- }
- }
- }
- }
- ?>
Salvei o arquivo na pasta applibvalidator
Nomeando como : TEmailValidaPontoVirgula.class.php
Usar da mesma forma, exemplos:
$email->addValidation('E-Mail', new TEmailValidaPontoVirgula());
ou assim no onSave:
$validador = new TEmailValidaPontoVirgula;
$validador->validate('E-Mail', $object->email);
$this->form->validate();
Segue em anexo
Corrigindo pq esqueci q não pega barra:
Salvei o arquivo na pasta: app / lib / validator