RegExp检查密码6个字符+ 1个数字

时间:2017-06-14 09:54:00

标签: javascript regex

我知道这已被问了一百万次,但我似乎无法破解它。

我有这个:

function checkPassword(strPassword)
{
  var objPattern = new RegExp("^.*(?=.{6,})(?=.*[a-z])[a-z0-9]*$");

  var blnResult = objPattern.test(strPassword);
  return(blnResult)
}

...但似乎只检查长度,而不是是否有数字?

我错过了什么?

编辑:

数字可以是字符串中的任何位置,不一定在结尾。

3 个答案:

答案 0 :(得分:4)

保持简单:if(strPassword.length >= 6 && /\d/.test(strPassword))将完成工作并且更具可读性

答案 1 :(得分:0)

您可以在功能中单独包含两个测试:

function checkPassword(strPassword){
  var blnResult = /\w{6,}/.test(strPassword)
   && /\d+/.test(strPassword);
  return(blnResult)
}

<强>演示:

&#13;
&#13;
function checkPassword(strPassword){
  var blnResult = /\w{6,}/.test(strPassword)
   && /\d+/.test(strPassword);
  return(blnResult)
}

var passwords = ["zeaezee2reer", "sds2", "ssdsdsdsdsd", "12155"];
passwords.forEach(function(p){
 console.log(p+" ::: "+ checkPassword(p));
});
&#13;
&#13;
&#13;

答案 2 :(得分:0)

如果您需要6个字符加上1个数字,那么您可以使用 ^ [Az] {6} [0-9] {1} $ 或至少使用6个字符和至少1个数字然后使用的 ^ [AZ] {6,} [0-9] {1,} $