Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>não funciona.
Dê uma olhada no site para você poder intender melhor www.jcmveiculos.com.br
Ah, disfarça, você quer para a senha.
Utilize RegEx, parecida com a que está na is_email().
Pode me ajudar utilizar esse regex ? pois não estou entendo.
Você sabe o que é uma RegEx?
Então eu li a respeito agora a pouco e entendi pouca coisa, mas isso ja deixei até salvo para dar uma estuda a fundo mais tarde, então amigo, como que eu faço esse RegEx ?
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 ?
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
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 ?
Eu te passei vários exemplos, em vários links.
Da uma analisada que tem o que você precisa sim.
vlw
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.
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
Sua função is_email() faz isso, não?