我希望我的代码检查编辑框中写入的内容是否包含特殊字符。它正在这样做,但如果在Array中找到特殊字符,它会逐个检查每个字符。如果第一个字母/字符不是特殊字符,它将显示一条消息(“密码必须...”),并继续检查其他字母是否是特殊字符,直到它到达编辑框中所写内容的结尾,即使它可能在第三个字符中找到特殊字符。
for Number := 1 to Length(s) do
begin
if Position(s[Number],Array) > 0 then
begin
ShowMessage('Success');
end
else
begin
ShowMessage('Password must contain at least one special character');
end;
end;
2条答案
按热度按时间ct3nt3jp1#
如果发现“特殊字符”,则需要停止循环。你可以使用
Break
来实现。您还需要记住是否找到了这样的字符,然后在循环结束后对结果进行操作。尝试更像这样的东西。
bxjv4tth2#
我建议你使用正则表达式,这将使你的生活更容易,这个例子应该做的伎俩,它返回一个字符串与所有使用的字符,而不是字母或数字
我已经使用了 Delphi 11和System.RegularExpressionsCore,但诀窍是由这个正则表达式
[^a-zA-Z0-9]
,那么你可以使用你喜欢的库来尝试它!