Bir kullanıcının parola yazıp 6 ile 10 arasında karakter içerdiği ve bir büyük harf, bir küçük harf ve bir sayı içermesi gereken bir parola doğrulama projesi üzerinde çalışıyorum.Actionscript 3 Parola Doğrulayıcı Parolaları Eşleştirmiyor
Programı sınarken ve bir parola yazarken "Parolalar MATEME DEĞİLDİR. Tekrar deneyin." feedback_txt alanında.
Gönder düğmesinin olay işleyicisi tarafından çağrılan iki işlevi var: Same() ve PasswordApproved(). Aynı işlev, parolanın iki kez girildiğini doğrular. PasswordApproved işlevi, şifrenin belirtilen standartları karşıladığını doğrular.
PasswordApproved bölümüne yardımcı olmak için CharCodeAt kullanmak için bir ipucu veriyordum, ancak bunu nasıl yapacağımı anlayamıyorum. Bu benim (.? Bunun ben doğru yazmıyorum yoksa sadece yanlış çalışmıyor nedeni olduğunu düşünüyorum) işlevleri için ne var
submit_btn.addEventListener(MouseEvent.CLICK,Submit);
function Submit(e:MouseEvent):void {
var pass1:String = password1_txt.text;
var pass2:String = password2_txt.text;
if (Same(pass1,pass2) == true) {
if (PasswordApproved(pass1) == true) {
feedback_txt.text = "Your password was APPROVED."
feedback_txt.textColor = 0x00FF00;
} else {
feedback_txt.text = "DID NOT MEET QUALIFICATIONS. Try again."
feedback_txt.textColor = 0xFF0000;
}
} else {
feedback_txt.text = "Passwords DID NOT MATCH. Try again."
feedback_txt.textColor = 0xFF0000;
}
password1_txt.text = "";
password2_txt.text = "";
stage.focus = password1_txt;
}
: Burada
Kod varfunction Same(pass1,pass2:String):void {
var pass1:String = password1_txt.text;
var pass2:String = password2_txt.text;
}
function PasswordApproved(pass1:String):String {
var pass1:String = "abchefghjkmnpqrstuvwxyzQWERTYUIOPLKJHGFDSAZXCVBNM";
var i:Number = 0;
var pass:String = "";
var nLength:Number = pass1.length;
var length:Number = 10
while(i<=length)
{
var num:Number = Math.round(Math.random() * nLength);
pass += pass1.charCodeAt(num);
i++;
}
return pass;
}
Önerdiğin şeyi denedim ama hala "Parolalar DEĞİLDİ DEĞİLDİR. Tekrar dene." Kodumun geri kalanını yayınladım, ama aynı işlevin, çalışmadığının nedeni olduğunu düşünüyorum. Her iki şifrenin de eşleşmesi için bir yol var mı? – Tams
@Tams Daha önce de belirttiğim gibi, 'Same' işlevine bile ihtiyacınız yoktur çünkü metin alanlarınızın bu "if" ifadesiyle aynı olduğunu doğrularsınız, ancak her zaman kullanmayı seviyorsanız, cevabını senin için düzeltmek için. – akmozo
Teşekkür ederim, akmozo. Test ettim ve her şey yolunda gidiyor. – Tams