Ir para conteúdo

POWERED BY:

Arquivado

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

wanderson.PHW

Validação para campo de senha, com letras e números obrigatórios

Recommended Posts

Estou com um probleminha em um campo de um formulario de cadastro de senha, mas gostaria que na senha fosse obrigatorio colocar letras e numeros apenas isso, ja coloquei um script para ser digitado apenas letras e numeros no campo da senha, mas se a pessoa digita somente numeros ou somente letras ele consegue avançar, e gostaria que a pessoa abrigatoriamente digitasse os 2 , alguém pode me ajudar á resolver esse problema ?

 

Segue o meu script do formulario para melhor interpretação

<script language="JavaScript" type="text/javascript">

<!--

function validar(theForm)
{

  // Verifica se o campo E-mail está preenchido

  if (theForm.email.value == "")

  {

    alert("Favor preencher o campo \"e-mail\".");

    theForm.email.focus();

    return (false);

  }

// Verifica se o campo Comentário está preenchido

  if (theForm.senha.value == "")

  {

    alert("Favor preencher o campo \"Senha\".");

    theForm.senha.focus();

   	return (false);

  }

}		

//-->

                    </script>
<script language=javascript> 
function confere(){
if (document.theForm.email.value.indexOf('@', 0) == -1 || document.theForm.email.value.indexOf('.', 0) == -1){ alert("E-mail invalido!");
	return false;
	}
}  
function is_email(email){
	er = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/; 
	if( !er.exec(email) )
	{
		jQuery('#retorno_capta').html('Email inválido!');
		return false;
	}
}
</script> 
<script type="text/javascript">

  var backup = new Array

  function check_alpha(val,name) {
	var goodChars = "0123456789abcdefghijklmnopqrstuxywvz"
 	var errors = 0
	var isOk = 1
	for(var i=0;i<val.length;i++) {
		isOk = 1
		for(var j=0;j<goodChars.length;j++) {
			if(goodChars.charAt(j) == val.charAt(i)) {
          			isOk = 0
       			}	
      		}
      		if(isOk == 1) {
			errors++
			break;
      		}
    	}
	if(errors > 0) {
		if(backup[name]) {
			document.getElementById(name).value = backup[name]
		}
		else {
			document.getElementById(name).value = ""
		}
	}
	else {
		backup[name] = val
	}
	
  }

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Li e Entendi, não é um bicho de 7 cabeças, mas expressão regular é bem mais complexo para trabalhar gostaria de uma solução funcional, mas não necessariamente de uma expressão regular, existe comandos mais simples e que abordam o mesmo conceito, tem alguns recursos desse tipo em asp ou em php, você poderia me ajudar com esse comando de outra maneira ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá wandersom, blza!

 

Segue alguns Links - Exemplos dos Recursos do HTML5 para seu caso em questão ( Campo Senha com letras e números )

 

http://www.w3schools.com/schema/schema_facets.asp ( Veja no 12° Exemplo )

 

http://html5pattern.com/Passwords ( Aqui tb tem Letras e Números )

 

http://blog.popupdesign.com.br/validando-formularios-like-a-boss-com-html5/

 

 

Senha (maiúsculas, minúsculas e Number)

" ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$ "

 

Senha (letras maiúsculas, minúsculas, Número / SpecialChar e min 8 caracteres)

" (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$ "

 

 

O próximo exemplo define um elemento chamado "password" com uma restrição. Deve haver exatamente oito caracteres em uma linha e esses caracteres devem ser letras minúsculas ou maiúsculas de A a Z, ou um número de 0 a 9:

 

<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

 

 

Exemplo de uso

<input name="senha" type="password" id="senha" required="required" pattern="[a-zA-Z0-9]{8}"/>

Bem são muitos exemplos, mas que se resume no mesmo.

 

 

 

Espero ter ajudado,

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

O "Exemplo de uso' que você citou acima wilnet, funcionou, acabei de testar, ele funciona do jeito que eu preciso, mas ele tem um limite de caracteres á serem digitados, tentei tirar esse limite, ai acaba não funcionando, e eu gostaria de deixar os caracteres ilimitados no campo, apenas validando se tem letras e numeros no campo da senha.

<input name="senha" type="password" id="senha" required="required" pattern="[a-zA-Z0-9]{8}"/>

o {8} que fica no final do código é o limite de caracteres, se eu tiro ele o código não valida. o que devo fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu te passei vários exemplos, em vários links.

 

Da uma analisada que tem o que você precisa sim.

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

wilnet consegui fazer funcionar, com uma junção do RegEx Exemplo de uso citado acima com um modelo de outro RegEx dos links que você postou acima, segue o script funcionando.

<input name="senha" type="password" class="form" id="senha"  size="60" maxlength="60" 
required="required" pattern="[a-zA]{5}[Z0-9]{3}">

Agora vamos aprofundar só mais um pouquinho, tem um outro detalhe que eu quero mudar mas não estou conseguindo, agora o formulario está ok validando número e letras "más" ele precisa de uma determinada quantidade de letras e números, Ex:"digite uma senha com 5 letras e 4 numeros", esse é o problema, o meu cliente quer que tenha letras e numeros mas não necessariamente nessa ordem e quantidade, ele quer que tenha letras e numeros mas que tenha a quantidade de caracteres da senha opcional pelo usuario.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, foi o que eu te disse, nos exemplos que te passei tem várias opções, incluindo essa que quer:

 

Segue o link novamente, embora já esteja no Post #10.

 

http://html5pattern.com/Passwords ( No primeiro exemplo )

 

Nele pode inserir em qualquer ordem, (maiúsculas, minúsculas e Números)

 

 

Espero ter ajudado,

 

vlw

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.