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

React Native 实现符合指定密码规则的正则表达式问题咨询

符合要求的密码校验正则表达式

你当前编写的正则存在两个问题:

  • 没有强制要求包含大写字母,且错误要求「同时包含数字和特殊字符」,而非规则要求的二选一
  • 没有明确限制最小长度为8位

正确正则

/^(?=.*[a-z])(?=.*[A-Z])(?=.*[\d\W_]).{8,}$/

规则匹配说明

  • (?=.*[a-z]):正向前瞻,校验字符串中至少存在1个小写字母
  • (?=.*[A-Z]):正向前瞻,校验字符串中至少存在1个大写字母
  • (?=.*[\d\W_]):正向前瞻,校验字符串中至少存在1个数字,或者1个特殊字符(包含下划线等非大小写字母的字符)
  • .{8,}:校验字符串总长度不小于8位

校验示例

  • 校验通过的密码:Test1234、Hello@world、Abc_2024
  • 校验不通过的密码:
    • test1234:缺少大写字母
    • TEST1234:缺少小写字母
    • Testabcd:没有数字也没有特殊字符
    • Test123:长度不足8位

React Native 中使用示例(基于Yup表单校验场景)

password: Yup.string()
  .matches(
    /^(?=.*[a-z])(?=.*[A-Z])(?=.*[\d\W_]).{8,}$/,
    '密码长度最少为8位,必须包含大小写字母,且至少含有1个数字或1个特殊字符'
  )
  .required('请输入密码')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:57:05