正则表达式:检测字符串中是否存在空格

4

这是我的当前正则表达式检查:

const validPassword = (password) => password.match(/^(?=.*\d)(?=.\S)(?=.*[a-zA-Z]).{6,}$/);

我需要确保字符串中没有任何空格,并且至少包含1个字母、1个数字,长度至少为6个字符。

然而,目前我可以输入包含空格的6个字符的字符串 :(enter image description here

在这里找到了答案,但出于某种原因,我的代码仍然通过了检查。

有没有匹配文字之间不包含空格的正则表达式?

1个回答

8

看起来你需要

/^(?=.*\d)(?=.*[a-zA-Z])\S{6,}$/

详细信息

  • ^ - 字符串的开头
  • (?=.*\d) - 至少一个数字
  • (?=.*[a-zA-Z]) - 至少一个字母
  • \S{6,} - 六个或更多非空格字符
  • $ - 字符串的结尾

考虑到对比原则,您可以重新设计该模式为

/^(?=\D*\d)(?=[^a-zA-Z]*[a-zA-Z])\S{6,}$/

1
那是一个很好的解释。 - Devendra Lattu
1
谢谢!天啊,正则表达式总是让我感到困惑,很少遇到必须使用它的情况。 - Leon Gaban

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接