Проверка/усиление пароля

Я пытаюсь создать учетную запись для пользователя и хочу усилить пароль, что мне добавить?

Я не знаю, как укрепить пароль, под этим я имел в виду, что хочу требовать прописных и строчных букв, а также добавлять цифры к паролю.

я что-то упускаю? или тут что-то не так? Должен ли я изменить все здесь?

<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>-->

Вероятно, вы не хотите, чтобы длина пароля составляла ровно 8 символов.

Pointy 01.12.2022 16:09

Что означает [a-zA-Z0-9]=? Это будет одна буква или цифра и знак равенства.

user3783243 01.12.2022 16:10

"Кажется, я все испортил" - Почему ты так думаешь? Какую актуальную проблему вы наблюдаете? "это не работает" - Что в этом "не работает"? Вы получаете сообщение об ошибке? Неожиданный результат? Что-то другое? Когда вы выполняете код в отладчике, какая конкретная операция приводит к неожиданному результату?

David 01.12.2022 16:11
Обязательный комикс
DarkBee 01.12.2022 16:13

Я видел на других сайтах, что вы можете оформить эти требования как флажки, а затем в своей функции keyUp проверить, какие из требований выполнены, и пометить их как выполненные. Позвольте пользователю отправить только после того, как все требования будут выполнены.

Justin Chang 01.12.2022 16:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть проблемы с вашим кодом:

  • выдает синтаксическую ошибку: лишнее { и отсутствующее })
  • ссылочные элементы отключены: class vs id
  • логическая ошибка: тест на >=
  • ошибка регулярного выражения для символа
  • 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 символов.

yumie 02.12.2022 02:57

Вам нужно будет установить флаг, если какая-либо проверка не пройдена, и если это так, отключите кнопку отправки формы.

Peter Thoeny 02.12.2022 03:03

вот моя кнопка отправки, здесь чего-то не хватает? <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>

yumie 02.12.2022 03:24

Добавьте идентификатор к кнопке, такой как id = "registerButton", установите переменную weakPasswordFlag в функции .keyup(), и в конце вашей функции .keyup() включите/отключите кнопку на основе этого флага: $('#registerButton').prop('disabled', weakPasswordFlag);

Peter Thoeny 02.12.2022 03:50

Другие вопросы по теме