65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 JavaScript 进行密码模式检查

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.33/5 (3投票s)

2007年8月7日

CPOL

1分钟阅读

viewsIcon

43338

使用 JavaScript 进行密码验证。

引言

如果我们希望密码由字母和数字的组合构成,并强制字符范围,我们可以简单地在 JavaScript 中实现。

背景

只需使用 JavaScript 确保用户输入字母数字数据的组合,并检查最小和最大允许的字符数。此代码检查是否至少包含一个字母字符和一个数字字符。

使用代码

function validatePassword(fieldName,minNumberOfDigits, maxNumberOfDigits) {
 var alphaNumericPattern =  "^[a-z0-9/_/$]{" + 
     minNumberOfDigits + "," + maxNumberOfDigits + "}";
 var regExpr = new RegExp(alphaNumericPattern,"i");
 var sourceField = event != null ? event.srcElement:e.target;
 if(fieldName != null && fieldName != "null" && fieldName != "undefined") {
   sourceField = document.getElementById(fieldName);
 }
 var message = "Password must be a combination of alphabets and numbers";
 message = message + "\n and must be between " + minNumberOfDigits + 
           " and " + maxNumberOfDigits + " chars.";
 var sourceFieldValue = sourceField.value;
 if(sourceFieldValue.length < minNumberOfDigits || 
            sourceFieldValue.length > maxNumberOfDigits){
  alert(message);
  sourceField.focus();
  return false;
 }
 if (!regExpr.test(sourceFieldValue)) {
  alert(message);
  sourceField.focus();
  return false;
 }
   regExpr = new RegExp("[a-z/_/$]{1}","i");
   if(!regExpr.test(sourceFieldValue)){
    alert(message);
    sourceField.focus();
    return false;
   }
   regExpr = new RegExp("[0-9]{1}","i");
   if(!regExpr.test(sourceFieldValue)){
     alert(message);
     sourceField.focus();
     return false;
   }
}
var alphaNumericPattern =  "^[a-z0-9/_/$]{" + minNumberOfDigits + 
                           "," + maxNumberOfDigits + "}";

它检查以下任何一个字符:a-z 或 0-9 或 _ 或 $。如果用户输入任何不支持的字符,它将提醒用户。

同时,它确保满足最小字符数和最大允许字符数。

regExpr = new RegExp("[a-z/_/$]{1}","i");

它检查是否至少包含一个字母字符

regExpr = new RegExp("[0-9]{1}","i");

并且它检查是否至少包含一个数字。

如果任何一项检查失败,它将提醒用户并将焦点设置回源字段。

因此,您会将此函数分配给 onchageonblur 事件。

<input type="password" onblur="return validatePassword(,6,12)">

<input type="password" onchange="return validatePassword('null',6,12)">

注意:始终建议在插入或存储数据之前进行双重检查。您需要使用服务器端验证来使数据万无一失。不要仅仅依赖 JavaScript 验证。

© . All rights reserved.