You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

密码特殊字符验证代码逻辑优化需求:解决无效遍历与误提示问题

修复特殊字符检查逻辑

原代码的问题很明确:每检查一个字符就弹出提示,只要第一个字符不是特殊字符就会先弹错误,就算后面找到特殊字符也会继续遍历到底,还可能出现多次弹窗的情况。

修改后的代码如下:

var
  Number: Integer;
  HasSpecialChar: Boolean;
begin
  HasSpecialChar := False;
  // 遍历输入字符串,检查是否存在特殊字符
  for Number := 1 to Length(s) do
  begin
    if Position(s[Number], Array) > 0 then
    begin
      HasSpecialChar := True;
      Break; // 找到一个特殊字符就够了,直接终止循环
    end;
  end;
  // 遍历结束后统一给出提示
  if HasSpecialChar then
    ShowMessage('Success')
  else
    ShowMessage('Password must contain at least one special character');
end;

修改说明

  • 新增HasSpecialChar布尔变量,用来标记是否找到特殊字符,避免中途频繁弹窗
  • 找到特殊字符后立即用Break跳出循环,不用再检查剩余字符,提升运行效率
  • 遍历完成后根据标记值统一弹出一次提示,不会出现提前误提示或多次弹窗的问题

内容的提问来源于stack exchange,提问作者Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 05:07:10