src/validator-docs/Validator.php
protected function validateTituloEleitor($attribute, $value)
    {

        $input = preg_replace('/[^\d]/', '', $value);

        $uf = substr($input, -4, 2);

        if (((strlen($input) < 5) || (strlen($input) > 13)) || 
        (str_repeat($input[1], strlen($input)) == $input) || 
        ($uf < 1 || $uf > 28)) {
            return false;
        }

        $dv = substr($input, -2);
        $base = 2;

        $sequencia = substr($input, 0, -4);

        for ($i = 0; $i < 2; $i++) { 
            $fator = 9;
            $soma = 0;

            for ($j = (strlen($sequencia) - 1); $j > -1; $j--) { 
                $soma += $sequencia[$j] * $fator;

                if ($fator == $base) {
                    $fator = 10;
                }

                $fator--;
            }

            $digito = $soma % 11;

            if (($digito == 0) and ($uf < 3)) {
                $digito = 1;
            } elseif ($digito == 10) {
                $digito = 0;
            }
            
            if ($dv[$i] != $digito) {
                return false;
            }

            switch ($i) {
                case '0':
                    $sequencia = $uf . $digito;

                    break;
            }
        }
        
        return true;
    }
protected function validateTituloEleitor($attribute, $value)
    {

        $input = preg_replace('/[^\d]/', '', $value);

        $uf = substr($input, -4, 2);

        if (((strlen($input) < 5) || (strlen($input) > 13)) || 
        (str_repeat($input[1], strlen($input)) == $input) || 
        ($uf < 1 || $uf > 28)) {
            return false;
        }

        $dv = substr($input, -2);
        $base = 2;

        $sequencia = substr($input, 0, -4);

        for ($i = 0; $i < 2; $i++) { 
            $fator = 9;
            $soma = 0;

            for ($j = (strlen($sequencia) - 1); $j > -1; $j--) { 
                $soma += $sequencia[$j] * $fator;

                if ($fator == $base) {
                    $fator = 10;
                }

                $fator--;
            }

            $digito = $soma % 11;

            if (($digito == 0) and ($uf < 3)) {
                $digito = 1;
            } elseif ($digito == 10) {
                $digito = 0;
            }
            
            if ($dv[$i] != $digito) {
                return false;
            }

            switch ($i) {
                case '0':
                    $sequencia = $uf . $digito;

                    break;
            }
        }
        
        return true;
    }
protected function validateTituloEleitor ( $ attribute , $ value ) { $ input = preg_replace ( '/[^\d]/' , '' , $ value ) ; $ uf = substr ( $ input , - 4 , 2 ) ; if ( ( ( strlen ( $ input ) < 5 ) || ( strlen ( $ input ) > 13 ) ) || ( str_repeat ( $ input [ 1 ] , strlen ( $ input ) ) == $ input ) || ( $ uf < 1 || $ uf > 28 ) ) { return false ; } $ dv = substr ( $ input , - 2 ) ; $ base = 2 ; $ sequencia = substr ( $ input , 0 , - 4 ) ; for ( $ i = 0 ; $ i < 2 ; $ i ++ ) { $ fator = 9 ; $ soma = 0 ; for ( $ j = ( strlen ( $ sequencia ) - 1 ) ; $ j > - 1 ; $ j -- ) { $ soma += $ sequencia [ $ j ] * $ fator ; if ( $ fator == $ base ) { $ fator = 10 ; } $ fator -- ; } $ digito = $ soma % 11 ; if ( ( $ digito == 0 ) and ( $ uf < 3 ) ) { $ digito = 1 ; } elseif ( $ digito == 10 ) { $ digito = 0 ; } if ( $ dv [ $ i ] != $ digito ) { return false ; } switch ( $ i ) { case '0' : $ sequencia = $ uf . $ digito ; break ; } } return true ; }
Valida Titulo de Eleitor
@param string $attribute
@param string $value
@return boolean
Valida Titulo de Eleitor