Я пытаюсь создать учетную запись для пользователя и хочу усилить пароль, что мне добавить?
Я не знаю, как укрепить пароль, под этим я имел в виду, что хочу требовать прописных и строчных букв, а также добавлять цифры к паролю.
я что-то упускаю? или тут что-то не так? Должен ли я изменить все здесь?
<div class = "form-group row">
<label class = "col-12 col-sm-3 col-form-label text-sm-right">Username</label>
<div class = "col-12 col-sm-8 col-lg-6">
<input data-parsley-type = "alphanum" type = "text" name = "username" pattern = "(?=.*[a-z]).{10, }.+" required = "" placeholder = "" class = "for m-control">
</div>
</div>
<div class = "form-group row">
<label class = "col-12 col-sm-3 col-form-label text-sm-right" for = "pass1">Password</label>
<div class = "col-12 col-sm-8 col-lg-6">
<input data-parsley-type = "alphanum" type = "passwrd" id = "password" name = "password" required = "" placeholder = "" class = "form-control" onkeyup = "return validate()">
<ul>
<li id = "uppercase">At least 1 Uppercase Character</li>
<li id = "lowercase">At least 1 Lowercase Character</li>
<li id = "num">At least 1 Number</li>
<li id = "maxChar">At least 8 characters long</li>
</ul>
</div>
</div>
попробовал это для js, я думаю, что я все испортил здесь, так как он не работает
$(document).ready(function(){
var lowercase = new RegExp('[a-z]');
var uppercase = new RegExp('[A-Z]');
var number = new RegExp('[0-9]');
$("#password").keyup(function(){
var password = $(this).val()
if (password.length == 8){
$("maxChar").css("color", "green");
}else{
$("maxChar").css("color", "red");
}
if (password.match(lowercase)){
$(".lowercase").css("color", "green");
}else{
$(".lowercase").css("color", "red");
}
if (password.match(uppercase)){
$(".uppercase").css("color", "green");
}else{
$(".uppercase").css("color", "red");
}
if (password.match(number)){
$(".num").css("color", "green");
}else{
$(".num").css("color", "red");
}
if (/^[a-zA-Z0-9]=$/.test(password) == false){
} $(".symbol").css("color", "green");
}else{
$(".symbol").css("color", "red");
}
})
</script>-->
Что означает [a-zA-Z0-9]=? Это будет одна буква или цифра и знак равенства.
"Кажется, я все испортил" - Почему ты так думаешь? Какую актуальную проблему вы наблюдаете? "это не работает" - Что в этом "не работает"? Вы получаете сообщение об ошибке? Неожиданный результат? Что-то другое? Когда вы выполняете код в отладчике, какая конкретная операция приводит к неожиданному результату?
Я видел на других сайтах, что вы можете оформить эти требования как флажки, а затем в своей функции keyUp проверить, какие из требований выполнены, и пометить их как выполненные. Позвольте пользователю отправить только после того, как все требования будут выполнены.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Есть проблемы с вашим кодом:
{ и отсутствующее })>=onkeyup = "" не требуется при использовании jQueryФиксированный код:
$(document).ready(function() {
$("#password").keyup(function() {
var password = $(this).val();
if (password.length >= 8){
$("#maxChar").css("color", "green");
} else {
$("#maxChar").css("color", "red");
}
if (/[a-z]/.test(password)) {
$("#lowercase").css("color", "green");
} else {
$("#lowercase").css("color", "red");
}
if (/[A-Z]/.test(password)) {
$("#uppercase").css("color", "green");
} else {
$("#uppercase").css("color", "red");
}
if (/[0-9]/.test(password)) {
$("#num").css("color", "green");
} else {
$("#num").css("color", "red");
}
if (/[^a-zA-Z0-9]/.test(password)) {
$("#symbol").css("color", "green");
} else {
$("#symbol").css("color", "red");
}
}).trigger('keyup');
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "form-group row">
<label class = "col-12 col-sm-3 col-form-label text-sm-right">Username</label>
<div class = "col-12 col-sm-8 col-lg-6">
<input data-parsley-type = "alphanum" type = "text" name = "username" pattern = "(?=.*[a-z]).{10, }.+" required = "" placeholder = "" class = "for m-control" />
</div>
</div>
<div class = "form-group row">
<label class = "col-12 col-sm-3 col-form-label text-sm-right" for = "pass1">Password</label>
<div class = "col-12 col-sm-8 col-lg-6">
<input data-parsley-type = "alphanum" type = "password" id = "password" name = "password" required = "" placeholder = "" class = "form-control" />
<ul>
<li id = "uppercase">At least 1 Uppercase Character</li>
<li id = "lowercase">At least 1 Lowercase Character</li>
<li id = "symbol">At least 1 Symbol</li>
<li id = "num">At least 1 Number</li>
<li id = "maxChar">At least 8 characters long</li>
</ul>
</div>
</div>Но у меня все еще есть одна проблема, почему он все еще создает имя пользователя и пароль, даже если я ввожу в него только 1 символ? хотя он проверяет как минимум 8 символов.
Вам нужно будет установить флаг, если какая-либо проверка не пройдена, и если это так, отключите кнопку отправки формы.
вот моя кнопка отправки, здесь чего-то не хватает? <div class = "form-group row text-right"> <div class = "col col-sm-10 col-lg-9 offset-sm-1 offset-lg-0"> <button class = "btn btn-space btn-success btn-primary">Submit</button> </div>
Добавьте идентификатор к кнопке, такой как id = "registerButton", установите переменную weakPasswordFlag в функции .keyup(), и в конце вашей функции .keyup() включите/отключите кнопку на основе этого флага: $('#registerButton').prop('disabled', weakPasswordFlag);
Вероятно, вы не хотите, чтобы длина пароля составляла ровно 8 символов.