Вы можете проверить каждое условие, отделенный без регулярных выражений. Идея заключается в том, проверьте все условия (в нижнем регистре, верхний регистр, длина, число) и изменить переключатель
Demo
HTML
<label for="password">Type password</label><br/>
<input type="text" name="password" id="password" />
<input type="button" name="check" id="check" onclick="check()" value="Check password!"/>
<p id="respuesta"></p>
Javascript
checkbt = document.getElementById("check");
passtxt = document.getElementById("password");
respuesta = document.getElementById("respuesta");
check = function(){
texto = passtxt.value.trim();
uppercase = false;
lowercase = false;
number = false;
lenght = false;
//uppercase letter
for (i=0; i< texto.length; i++){
if (texto[i] == texto[i].toUpperCase()){
uppercase = true;
break;
} else {
uppercase = false;
}
}
//lowercase
for (i=0; i< texto.length; i++){
if (texto[i] == texto[i].toLowerCase()){
lowercase = true;
break;
} else {
lowercase = false;
}
}
//number
for (i=0; i< texto.length; i++){
if (!isNaN(texto[i])){
number = true;
break;
} else {
number = false;
}
}
if (texto.length < 6){
lenght = false;
} else {
lenght = true;
}
if (lowercase && uppercase && number && lenght){
respuesta.innerHTML = "Password is good";
} else {
respuesta.innerHTML = "Password is bad <br />" +
"lowercase: " + boolstr(lowercase) + "<br />"+
"uppercase: " + boolstr(uppercase) + "<br />"+
"number: " + boolstr(number) + "<br />"+
"lenght: " + boolstr(lenght) + "<br />";
}
}
function boolstr(val){
if (val == true)
return "true";
else
return "false";
}
Я пробовал различные регулярные выражения, но не мог получить выражение, которое точно проверяет указанное выше условие – John
может вы вставляете их, чтобы мы могли помочь? – SMA
@John post, что regex ... –