![](/img/trans.png)
[英]Regex for password: Must start with a capital letter and contain only one digit
[英]Validate password - must contain 2 capital letters
有人能告訴我為什么這個功能不起作用嗎? 密碼長度和數字檢查工作完美。 但是大寫的支票有點不對勁……
function validera() {
var passw = document.getElementById("User-Password").value;
var upper = /[A-Z]/ ;
var number = /[0-9]/;
if (passw.length < 6 || !number.test(passw) || !upper.test(passw)) {
if (passw.length < 6) {
alert("Please make sure password is longer than 6 characters.")
return false;
}
var counter = 0;
var i;
for(i = 0; i < passw.length; i++){
passw.charAt(i)
if(upper.test(passw.charAt(i))){
counter++;
break;
}
}
if( counter < 2 ){
alert("Please make sure password includes 2 capital letters")
return false;
}
if (!number.test(passw)) {
alert("Please make sure Password Includes a Digit")
return false;
}
} else {
alert("Account created")
}
還是我必須使用正則表達式?
在這里檢查一下Fiddle
CreateRandomPassword(Length, isUpperAlpha, isLowerAlpha, isNumaric ,SpecialChars)
我開發了簡單的功能來生成密碼
這是一個返回帶有消息和布爾值的對象的函數。
示例片段:
function testPassword(pwd) { if (pwd.length <= 6) return { valid: false, message: "Please make sure password is longer than 6 characters." }; if(!/[AZ].*[AZ]/.test(pwd)) return { valid: false, message: "Please make sure password includes 2 capital letters" }; if (!/\\d/.test(pwd)) return { valid: false, message: "Please make sure Password Includes a Digit" }; if (/\\s/.test(pwd)) return { valid: false, message: "Please only use visible characters" }; return { valid: true, message: "Valid Password" }; } console.log(testPassword('Val1dPassword')); console.log(testPassword('SH0rt')); console.log(testPassword('No2capitals')); console.log(testPassword('NoDigits')); console.log(testPassword('Has\\tat least 1 WhiteSpace'));
那么你的功能就可以簡化了。
function validera() {
let passw = document.getElementById("User-Password").value;
let check = testPassword(passwd);
if (check.valid) {
alert(check.message);
return false;
}
else {
alert("Account created")
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.