gpt4 book ai didi

delphi - 用delphi代码验证密码

转载 作者:行者123 更新时间:2023-12-03 15:42:55 24 4
gpt4 key购买 nike

希望实现一个最终用户对话框,要求他们创建自己的密码。

长度必须为 9 个字符。 1 个字符必须是大写,1 个字符必须是小写,一个必须是数字,['0'..'9'] 并且一个必须来自一组 6 个预定义的 ascii 字符,如下所示。 ['!','#','%','&','*','@']。

完成此操作。并有效。然而,我想要做的是使用 onchange 事件提供可见的验证,如果满足所有要求,则将编辑框的颜色更改为绿色,如果不满足,则将编辑框的颜色更改为红色。验证 9 个字符长度很容易,但是检查 9 个不同的字符以确保至少有 1 个大字符、1 个小字符、1 个数字和 1 个预定义的字符有点困难。有人可以帮忙吗?谢谢。

这是代码:

procedure TPasswordForm.edtPassword1Change(Sender: TObject);      
begin
if Length(edtPassword1.Text <> 9 then
edtPassword1.Color := clRed
else
edtPassword1.Color := clLime;
end;

最佳答案

对于固定字符集功能可能非常简单。请注意,它不接受非拉丁字符。

function IsPasswordCrazy(const s: AnsiString): Boolean;
const
C_Upcase = 1;
C_Locase = 2;
C_Digit = 4;
C_SpecSym = 8;
C_All = C_Upcase or C_Locase or C_Digit or C_SpecSym;
var
i, keys: integer;
begin

if Length(s) <> 9 then begin
Result := False;
Exit;
end;

keys := 0;
for i := 1 to Length(s) do
case s[i] of
'A'..'Z': keys := keys or C_Upcase;
'a'..'z': keys := keys or C_Locase;
'0'..'9': keys := keys or C_Digit;
'!','#','%','&','*','@': keys := keys or C_SpecSym;
end;

Result := keys = C_All;
end;

关于delphi - 用delphi代码验证密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45894923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com