Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezados, bom dia. Sou novo no fórum, peço desculpas caso esteja postando no local errado. Estou precisando que o edit abaixo tenha máscara de CPF e verique se o mesmo é válido ou não apresentando mensagem caso seja inválido. Meu código:
<label style="width:15%. ">CPF<br><input type="text" id="cpf" step="0.1" name="cpf" class="form-control cpf-mask" placeholder="Ex.: 000.000.000-00" style="width:100%"></label> Já tentei diversas formas e não consegui. Obs.: Sou iniciante em programação web. Agradecido desde já pelas ajudas que estão por vir. Muito obrigado!!!Normalmente em aplicações quando precisamos validar CPF, também precisamos além de pessoas físicas validar pessoas jurídicas então preparei esse exemplo tanto para verificação de CPF quando para CNPJ.
Note que teremos 2 tipos de filtros...
Um usando expressão regular, o que obriga a pessoa ter que digitar o campo de forma correta. Do contrário o formulário não pode ser submetido.
Um usando script, que vai limpando qualquer caractere que não se enquadre no que é permitido.
Fica a seu critério o que usar ou cominar os dois.
Também a validação do lado do servidor, que é extremamente necessária pois tanto HTML como JS podem ser manipulados pelo usuário.
<form method="POST">
<p>Usando expressão regular</p>
<input
type="text"
name="expressao"
minlength="14"
maxlength="18"
pattern="([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[\/]?[0-9]{4}[-]?[0-9]{2})|([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})"
/>
<p>Usando script</p>
<input
type="text"
name="script"
minlength="14"
maxlength="18"
onkeypress="mask(this, cpfCnpj)"
onblur="clearTimeout()"
/>
<hr />
<button>Executar</button>
</form>
<?php
if (isset($_POST) && count($_POST)) {
require_once(__DIR__ . DIRECTORY_SEPARATOR . 'StrValid.php');
$valido = new StrValid();
if ($valido->checkCpfCnpj($_POST['expressao'])) {
echo("<p>O post expressao é um CPF ou CNPJ válido</p>");
}
if ($valido->checkCpfCnpj($_POST['script'])) {
echo("<p>O post expressao é um CPF ou CNPJ válido</p>");
}
echo("<pre>");
var_dump($_POST);
echo("</pre>");
}
?>
<script>
function mask(o, f) {
v_obj = o;
v_fun = f;
setTimeout('obMask()', 1);
}
function obMask() {
v_obj.value = v_fun(v_obj.value);
}
function cpfCnpj(v) {
v = v.replace(/\D/g, ''); //Remove tudo o que não é dígito
if (v.length <= 13) { //CPF
v = v.replace(/(\d{3})(\d)/, '$1.$2'); //Coloca um ponto entre o terceiro e o quarto dígitos
v = v.replace(/(\d{3})(\d)/, '$1.$2'); //Coloca um ponto entre o terceiro e o quarto dígitos de novo (para o segundo bloco de números)
v = v.replace(/(\d{3})(\d{1,2})$/, '$1-$2'); //Coloca um hífen entre o terceiro e o quarto dígitos
} else { //CNPJ
v = v.replace(/^(\d{2})(\d)/, '$1.$2'); //Coloca ponto entre o segundo e o terceiro dígitos
v = v.replace(/^(\d{2})\.(\d{3})(\d)/, '$1.$2.$3'); //Coloca ponto entre o quinto e o sexto dígitos
v = v.replace(/\.(\d{3})(\d)/, '.$1/$2'); //Coloca uma barra entre o oitavo e o nono dígitos
v = v.replace(/(\d{4})(\d)/, '$1-$2'); //Coloca um hífen depois do bloco de quatro dígitos
}
return v;
}
</script>
**Classe StrValid**
<?php
/**
* ********************************************
@class StrValid
@copyright (c) Spell master
@version 2.1
@see Classe para verificação de string
* ********************************************
*/
class StrValid {
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres alfabéticos "Não acentuados
* e sem espaços"
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function strCheck($subject) {
if (preg_match('/^([a-zA-Z]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres numéricos
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function intCheck($subject) {
if (preg_match('/^([0-9]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres alfabéticos "Incluíndo
* acentos"
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function strAccent($subject) {
if (preg_match('/^([a-zA-ZÀ-ú]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres alfabéticos "Incluíndo
* espaços"
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function StrSpace($subject) {
if (preg_match('/^([a-zA-Z ]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres numéricos "com ou sem
* espaços"
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function intSpace($subject) {
if (preg_match('/^([0-9 ]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres alfabéticos ou numéricos
* "sem espaços ou acentos"
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function strInt($subject) {
if (preg_match('/^([a-zA-Z0-9]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres alfabéticos ou numéricos
* "incluíndo espaços ou acentos"
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function strIntSpace($subject) {
if (preg_match('/^([a-zA-Z À-ú 0-9]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres alfabéticos "Incluíndo
* acentos ou espaços"
* - Tipo de verificação padrão para nomes
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function nameCheck($subject) {
if (preg_match('/^([a-zA-Z À-ú]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres para uma url válida
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* @example :
* - https://url/?entrada_get=algum-valor
* Retorna true por ser válido
* - /algumacoisa
* Retorna true por ser válido
* ****************************************
*/
public function urlCheck($subject) {
if (preg_match('/^([a-zA-Z0-9-_:\/?&=%]+)$/i', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string possui somente
* caracteres válidos para um endereço de
* e-mail.
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function mailCheck($subject) {
if (preg_match('/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{3})$/', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string é um tipo de
* telefone válido.
* @example :
* - +55 (99) 99999-9999
* - 99 99999-8888
* - 9999-9999
* - 9999999999999
* Ambos números são válidos.
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function checkPhone($subject) {
if (preg_match('/^(?:(?:\+|00)?(55)\s?)?(?:\(?([1-9][0-9])\)?\s?)?(?:((?:9\d|[2-9])\d{3})\-?(\d{4}))$/', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string é um tipo de
* CPF válido.
* @example :
* - 000.000000-00
* CPF é válido.
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function checkCpf($subject) {
if (preg_match('/^([0-9]{3}[\.][0-9]{3}[\.][0-9]{3}[-][0-9]{2})$/', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string é um tipo de
* CNPJ válido.
* @example :
* - 00.000.000/0000-00
* CNPJ é válido.
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function checkCnpj($subject) {
if (preg_match('/^([0-9]{2}[\.][0-9]{3}[\.][0-9]{3}[\/][0-9]{4}[-][0-9]{2})$/', $subject)) {
return (true);
}
}
/**
* ****************************************
* Verificar se uma string é um tipo de
* CPF ou CNPJ válido.
* @example :
* - 000.000000-00
* - 00000000000
* CPF é válido.
*
* - 00.000.000/0000-00
* - 00000000000000
* CNPJ é válido.
* ****************************************
* @param {string} $subject
* Entrada para verificação
* @return {true} (A string é valida)
* ****************************************
*/
public function checkCpfCnpj($subject) {
if (preg_match('/^([0-9]{3}[\.]?[0-9]{3}[\.]?[0-9]{3}[-]?[0-9]{2})|([0-9]{2}[\.]?[0-9]{3}[\.]?[0-9]{3}[\/]?[0-9]{4}[-]?[0-9]{2})$/', $subject)) {
return (true);
}
}
}
Não sei se eu entende a pergunta mais vou deixa uns exemplos aqui espero que ajude em alguma coisa
Seria mais o menos isso...
MODELO 01
obj=objeto masc=mascara setTimeout("fMascEx()",1) }function fMascEx() {
obj.value=masc(obj.value)
}
function mCPF(cpf){
cpf=cpf.replace(/\D/g,"")
cpf=cpf.replace(/(\d{3})(\d)/,"$1.$2")
cpf=cpf.replace(/(\d{3})(\d)/,"$1.$2")
cpf=cpf.replace(/(\d{3})(\d{1,2})$/,"$1-$2")
obj=objeto
masc=mascara
setTimeout("fMascEx()",1)
}
function fMascEx() {
obj.value=masc(obj.value)
}
function mCPF(cpf){
cpf=cpf.replace(/\D/g,"")
cpf=cpf.replace(/(\d{3})(\d)/,"$1.$2")
cpf=cpf.replace(/(\d{3})(\d)/,"$1.$2")
cpf=cpf.replace(/(\d{3})(\d{1,2})$/,"$1-$2")