使用 JavaScript 进行密码模式检查






2.33/5 (3投票s)
使用 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");
并且它检查是否至少包含一个数字。
如果任何一项检查失败,它将提醒用户并将焦点设置回源字段。
因此,您会将此函数分配给 onchage
或 onblur
事件。
<input type="password" onblur="return validatePassword(,6,12)">
或
<input type="password" onchange="return validatePassword('null',6,12)">
注意:始终建议在插入或存储数据之前进行双重检查。您需要使用服务器端验证来使数据万无一失。不要仅仅依赖 JavaScript 验证。