Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou validando um campo para senha no php, como faço para obter obrigatoriamente letras "e" números? Existe alguma função para isso ou expressão regular?
Bom, como o tópico já tem um tempinho, vou postar uma solução.
Quando vi o tópico não consegui ajudar, fiz alguns testes no mesmo dia e não achei solução. Dei uma lida nos links do Bruno Augusto e, depois de quebrar um pouco a cabeça, cheguei a esta função:
<?php
function has_letters_and_numbers($string) {
if (preg_match('/^(?:([a-z])|(\d))+$/i', $string, $matches) && !empty($matches[1]) && !empty($matches[2])) {
return true;
}
else return false;
}
?>
Resultado:
<?php
var_dump(has_letters_and_numbers('senha')); # bool(false)
var_dump(has_letters_and_numbers('senha123')); # bool(true)
var_dump(has_letters_and_numbers('123')); # bool(false)
var_dump(has_letters_and_numbers('1s2e3nha')); # bool(true)
var_dump(has_letters_and_numbers('1s2e3nha@')); # bool(false)
?>
Vlw pessoal, consegui resolver o problema pela função do Haz, ainda estou meio boiando no assunto mas vou estudar para entender melhor esse papo de ER.
E esse é ponto que separa alguém que apenas usa um gerador de código, daqueles que assumem que não tem experiência, mas tem vontade de aprender.
É gratificante ver o interesse no estudo motivado por alguma solução.
É ER, sim
Leituras recomendadas: Listas e Controle (se quiser definir um mínimo e/ou máximo) ou Mais (se não)