如何验证密码允许使用正则表达式至少4个数字和1个没有特殊字符的字符?

时间:2014-02-23 10:22:06

标签: javascript regex

如何使用正则表达式验证密码是否允许至少4个数字和1个没有特殊字符的字符?

密码有效格式:1234a或6778B或67A89(不含特殊字符,如@ $%^& * /)

最长密码长度:长5个字符

任何人都可以帮我解决这个问题吗?。

感谢。

4 个答案:

答案 0 :(得分:2)

你想要的模式

  • 任意数量的数字
  • 然后一封信
  • 任意数量的数字
  • 所有限制因素不应超过5个字符

模式可能是这样的:(使用正向前瞻来检查数字 - 字母 - 数字组合,然后检查5个字符以检查长度)

/^(?=[0-9]*[a-zA-Z][0-9]*$).{5}$/

答案 1 :(得分:1)

这个正则表达式应该有效:

^(?=(.*?[0-9]){4})(?=.*?[a-zA-Z])[0-9A-Za-z]{5}$

由于我们只允许密码中使用[0-9A-Za-z]{5}符号,因此无需在此处检查特殊字符。

在线演示:http://regex101.com/r/mB6sS5

<强>解释

  • (?=(.*?[0-9]){4}) - 预测检查是否存在至少4个数字
  • (?=.*?[a-zA-Z]) - 前瞻检查是否存在至少1个字母
  • [0-9A-Za-z]{5}仅允许字符类中的符号使用max length = 5

答案 2 :(得分:0)

^[0-9]{4}[A-Za-z]{1}$

这将允许您输入四个数字(0-9)和1个字母(a-z和A-Z)示例1234a ....希望这是您正在寻找的答案。

答案 3 :(得分:0)

以下是进行所需检查的javascript代码

var regex =^(?=(.*?[0-9]){4})(?=.*?[a-zA-Z])[0-9A-Za-z]{5}$; 
var input = "1234B"; 
if(regex.test(input)) {
    alert(matches[match]);
} else 
{
  alert("No matches found!");
}