Ver Mensaje Individual
  #3  
Antiguo 21-09-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 23
maeyanes Va por buen camino
Tengo una función en JavaScript que hace algo como lo que quieres, ya sería que la traduzcas a Delphi:

Código:
function check_pw(pw_to_check)
{
	var counter_to_check = 0;
	var minlength_to_check = 6;

	if (pw_to_check.length >= minlength_to_check)
	{
		counter_to_check = counter_to_check + 1;
	}
	if (pw_to_check.match(/[A-Z\Ä\Ö\Ü]/))
	{
		counter_to_check = counter_to_check + 2;
	}
	if (pw_to_check.match(/[a-z\ä\ö\ü\ß]/))
	{
		counter_to_check = counter_to_check + 1;
	}
	if (pw_to_check.match(/[0-9]/))
	{
		counter_to_check = counter_to_check + 2;
	}
        if (pw_to_check.match(/[\.\,\?\!\%\*\_\#\:\;\~\\&\$\§\€\@\/\=\+\-\(\)\[\]\|\<\>]/)) 
        { 
           counter_to_check = counter_to_check + 2; 
        } 
	if (pw_to_check == document.getElementsByName('username').username.value)
	{
		counter_to_check = 0;
	}
	if (pw_to_check == document.getElementsByName('email').email.value)
	{
		counter_to_check = 0;
	}

	if (counter_to_check <= 2)
	{
		document.getElementsByName('holder_pw')[0].style.backgroundColor = 'red';
		document.getElementsByName('holder_pw')[0].style.color = 'black';
		document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
		document.getElementsByName('holder_pw')[0].value = 'Insegura';
	}
	else if (counter_to_check <= 4)
	{
		document.getElementsByName('holder_pw')[0].style.backgroundColor = 'yellow';
		document.getElementsByName('holder_pw')[0].style.color = 'black';
		document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
		document.getElementsByName('holder_pw')[0].value = 'No recomendable';
	}
	else if (counter_to_check <= 5)
	{
		document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
		document.getElementsByName('holder_pw')[0].style.color = 'white';
		document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
		document.getElementsByName('holder_pw')[0].value = 'Relativamente segura';
	}
	else if (counter_to_check <= 7)
	{
		document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
		document.getElementsByName('holder_pw')[0].style.color = 'white';
		document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
		document.getElementsByName('holder_pw')[0].value = 'Segura';
	}
	else if (counter_to_check == 8)
	{
		document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
		document.getElementsByName('holder_pw')[0].style.color = 'white';
		document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
		document.getElementsByName('holder_pw')[0].value = 'Muy segura';
	}
}
Si te fijas, usan mucho las expresiones regulares. Existe para Delphi alguna biblioteca para manejo de expresiones regulares, solo es cosa que hagas una búsqueda...


Saludos...
Responder Con Cita