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

Swift/iOS正则验证密码报U_REGEX_MISSING_CLOSE_BRACKET错误排查

报错及逻辑问题的原因

  • 直接触发报错的是语法错误:你在特殊字符的方括号匹配组里直接写了未转义的[字符。正则的字符组([]包裹的部分)中[属于保留字符,必须转义才能作为普通符号匹配,你的写法导致正则解析时误认为字符组提前关闭,因此抛出U_REGEX_MISSING_CLOSE_BRACKET缺失闭合括号的错误。
  • 正则逻辑完全不符合你的需求:你要求仅必填1个大写字母、1个数字,但当前正则额外加了「必须包含小写字母」「必须包含指定特殊符号」的强制校验,且所有预查规则写完后没有加匹配实际字符的表达式,就算语法修正也无法匹配任何有效密码。

符合你需求的修正代码

如果仅要求至少1个大写、1个数字,其余字符无限制,可自行调整{6,}中的数字修改最小密码长度(示例为最少6位):

let passwordRegex = "^(?=.*[0-9])(?=.*[A-Z]).{6,}$"

如果你额外需要限制密码只能由大小写字母、数字、你指定的特殊符号组成,写法如下(已处理转义问题):

// 字符组内的[、]、-都已做Swift字符串的双重转义,避免解析错误
let passwordRegex = "^(?=.*[0-9])(?=.*[A-Z])[a-zA-Z0-9*.!@$%^&(){}:;<>,.?/~_+\\-=|\\[\\]]{6,}$"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:36:04