使用JavaScript进行密码 Pattern 检查

分享于 

3分钟阅读

Web开发

  繁體 雙語

介绍

如果我们想强制密码成为字母和数字的组合,并强制一个字符范围,我们只能在JavaScript中。

Background

只需使用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();
 returnfalse;
 }
 if (!regExpr.test(sourceFieldValue)) {
 alert(message);
 sourceField.focus();
 returnfalse;
 }
 regExpr = new RegExp("[a-z/_/$]{1}","i");
 if(!regExpr.test(sourceFieldValue)){
 alert(message);
 sourceField.focus();
 returnfalse;
 }
 regExpr = new RegExp("[0-9]{1}","i");
 if(!regExpr.test(sourceFieldValue)){
 alert(message);
 sourceField.focus();
 returnfalse;
 }
}var alphaNumericPattern = "^[a-z0-9/_/$]{" + minNumberOfDigits + 
 "," + maxNumberOfDigits + "}";

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

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

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

它检查至少一个字母字符:

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

并检查atl的编号。

如果它的中任何一个检查失败,它将警告用户并将焦点设置回源字段。

因此,你将在 onchage 或者 onblur 事件上分配这个函数。

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

或者:

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

注意 : 在插入或者存储数据之前,建议仔细检查数据。 你需要使用服务器端验证来使数据更加可靠。 不要仅仅依赖JavaScript验证。


相关文章