Ir para conteúdo

POWERED BY:

Arquivado

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

Mr Crowley

campo com 2 ou 8, difetente disso, nao passa

Recommended Posts

ola pessoal

eu tenho uma funcao que aceita o valor num certo intervalo, porem, eu queria saber como fazer uma que aceita por exemplo o valor com 2 caracteres ou 8.

segue a minha funcao

//funções bases para funcionamento//
function getID(id) 
{
	return document.getElementById(id);
}

function getIDValue(id) 
{
	return getID(id).value;
}

function getIDType(id) 
{
	return getID(id).type;
}

function getIDLen(id) 
{
	return getIDValue(id).length;
}

function getTag(tag) 
{
	return document.getElementsByTagName(tag);
}

function setIDDisable(id,stt) 
{
	return getID(id).disabled = stt;
}

function setIDClass(id,classNome) {
	return getID(id).className = classNome;
}

function validCampoInteiro(campo,nome,minLetra,maxLetra)
{
	var valor = getIDValue(campo);
	//var valor = getIDValue(campo);

	if (maxLetra!= '')
	{
		eval('var exprReg = /(^([0-9\\s]){'+minLetra+','+maxLetra+'})+$/;');
	}
	else
	{
		eval('var exprReg = /(^([0-9\\s]))+$/;');
	}
	
	//alert(exprReg);
	if (exprReg.test(valor) == false)
	{
		var msgErr = 'Erro ao validar o campo ' + nome + '.\nEle só aceita caracteres numéricos com no máximo '+maxLetra+' caracteres.\n';
		if (minLetra != 0){msgErr = msgErr + 'É obrigatório e deve ter no mínimo '+minLetra+' caracteres.\n';}
		
		alert(msgErr);
		setIDClass(campo,'FormCampoErr');
		return false;
	}
	setIDClass(campo,'FormCampo');
	return true;
}

da forma que deixei aceita intervalos, queria que aceita-se via parametro 2 ou 8 caracteres

 

 

abs

 

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

você qr verificar apenas o tamanho do campo entao... e nao o seu conteudo.. é isso ??

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade ambos, so posso permitir numeros, mas acho que esta parte esta correta no reg certo?

 

vou ver se consigo explicar melhor agora

suponhando que estou usando o metodo

validCampoInteiro('teste','TESTE',2,8);

 

neste caso eu queria que valida-se se o campo tem 2 ou 8 caracteres, diferente disto, quero um retorno de erro

 

valores

11 = OK

111 = ERRO

111111 = ERRO

11111111 = OK

1111111 = ERRO

1 = ERRO

 

 

é essa a ideia

 

abs

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

var checkInt = function(idCampo,min,max)
{
	min = parsetInt(min,10);
	max = parseInt(max,10)
	if(!isNaN(min) && !isNaN(max))
	{
		var regText = new RegExp("^(\\d{" + min + ","+ max + "})$");
		return regText.test(document.getElementById(idCampo).value);
	}
	else
	return false;
}

Refatorei a sua função, veja se esta supri a suas necessidades,

 

Abraços

 

Ps. há formas de você fazer isso sem usar expressões regulares.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza klaygomes

vou fazer os teste

porem, a melhor forma nao é usando expressa regular?

bem, uma historinha do meu sistema..rs

eu tenho 3 tipos de campo

os texto, numericos e textos+numericos

 

sendo que os texto aceitam apenas letras sem acentos, e mais nada

 

por isso tenho usado expressao regular, achei mais facil que criar aqueles loops ou ficar verificando se a letra esta dentro do intervalo de caracteres ascci

 

abs

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.