0

我需要一个用于 Javascript 的正则表达式,它仅在以下情况下检查密码是否正确

  • 至少有 1 个数字和 1 个字母
  • 当它有下划线和/或连字符时仍然有效
  • 长度必须为 4-20 个字符。

例子:

  1. test123 -> 有效
  2. test1 -> 有效
  3. 1234 -> 无效
  4. 测试 -> 无效
  5. test1_ -> 有效
  6. 测试 2 -> 有效

我尝试使用

var Reg = /^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z-_]{4,12}$/;

它适用于 PHP,但不适用于 Javascript,有什么建议吗?

4

1 回答 1

1

将连字符放在字符类的末尾:

var Reg = /^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z_-]{4,20}$/;

您还可以缩短该字符类:

var Reg = /^(?=.*\d)(?=.*[A-Za-z])[\w-]{4,20}$/;

另外,您说的是 20 个字符,而不是 12 个字符。对吗?

于 2013-09-20T09:16:22.790 回答