Ir ao conteúdo

Crtica a formulario javascript


hustlers

Posts recomendados

Postado

Ola pessoal!!!

Estou com o seguinte problema

preciso criar uma função que verifique se um campo do formulario comtem 8 caracteres e se todos estes são numeros, se não apresente um alerta assim que o campo for midificado, até antão consegui fazer o alert para se um dos caracteres for letra mas não consigo acrescentar a função para quando a quantidade de digitos for diferente de 8 apresente um alert diferente dizendo ''telefone fixo tem de ter 8 dígitos"

tenho até agora

<script>
function EhDigito(car)

{return((car >= "0") && (car <= "9"));}
function VerificaTelefone(campo)
{var telef = campo.value; for (i = 0; i < telef.length; i++)
if (! EhDigito (telef.charAt(i)))
{
alert("telefone fixo só pode ter digítos, caracter "+telef.charAt(i)+ " inválido!");
campo.focus();
return false;
}
return true;
}
</script>

e simplesmente introduizi o onchange=VerificaTelefone(this) no input.

<input type="text"  VALUE="" onChange= "VerificaTelefone(this)">

Postado

Olá,

para verificar se um campo contém 8 caracteres e todos estes são numeros você pode usar uma "Expressão Regular", como abaixo:


telefone = '12345678';
if(/^[0-9]{8}$/.test(telefone))
alert('É um telefone');
else
alert('Não e um telefone');

observe que "[0-9]" significa uma lista (range) de 0 à 9 e "{8}" é um quantificador, que determina que são exatamente 8 digitos. "^" significa começo da linha, "$" significa fim da linha. as barras "/" no começo e no fim delimitam a expressão regular no Javascript.

Se você quiser inserir o hífen no meio dos caracteres seria assim:


telefone = '1234-5678';
if(/^[0-9]{4}-[0-9]{4}$/.test(telefone))
alert('É um telefone');
else
alert('Não e um telefone');

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...