正则表达式字母数字字符 - 允许连字符和下划线

时间:2013-09-20 09:11:38

标签: javascript regex

我需要一个Javascript的正则表达式,它只在

时检查密码是否正确
  • 至少有1个号码和1个字母
  • 当它有下划线和/或连字符时仍然有效
  • 长度必须为4-20个字符。

示例:

  1. test123 - >有效
  2. test1 - >有效
  3. 1234 - >无效
  4. 测试 - >无效
  5. test1_ - >有效
  6. test-2 - >有效
  7. 我尝试使用

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

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

1 个答案:

答案 0 :(得分:1)

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

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

您还可以缩短该字符类:

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

另外,你说了20个字符,而不是12个。对吧?