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

求助:编写满足多条件且不含空格的正则,空格排除规则失效

正则表达式修正方案:满足密码规则并排除空格

你的原正则无法排除空格的核心问题是:(?=.*[^a-zA-Z0-9\s])仅确保存在一个非字母、非数字、非空格的特殊字符,但后面的.{8,}会匹配包括空格在内的任意字符,导致字符串其他位置仍可出现空格。

修正后的两种有效写法

写法1:直接限制所有字符为非空格

/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9\s])[^\s]{8,}$/
  • 将原正则末尾的.{8,}替换为[^\s]{8,},强制匹配8个及以上非空格字符,从根本上排除空格。

写法2:用负向预查明确禁止空格(可读性更强)

/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9])(?!.*\s).{8,}$/
  • 添加(?!.*\s)负向预查:确保字符串中不存在任何空格;
  • 简化特殊字符预查为(?=.*[^a-zA-Z0-9]),因为空格已被负向预查排除,这里只需匹配非字母数字的字符即可。

验证逻辑拆解

所有写法都严格满足以下要求:

  • 至少包含1个小写字母
  • 至少包含1个大写字母
  • 至少包含1个数字
  • 至少包含1个非字母数字的特殊字符
  • 长度不少于8位
  • 全程无空格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:17:26