Проверка по-прежнему применяется, когда поле ввода пустое и считает его неправильным - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть поле пароля, которое я хочу проверить на 3 условиях.Когда я соответствую всем критериям, он пропускает одну силу: слабый .

Когда я очищаю поле ввода, одно выражение регулярного выражения все еще соответствует критериям, и я не знаю почему.

Пропускает слабую силу и при удалении всего.Сила остается плохой, но она должна опустеть.Любые предложения, что не так или как я могу это улучшить?заранее спасибо

Это мой HTML:

<label class="customer__form-field js-cm-field">
                        <span>{{'form.password' | trans}} *</span>
                        <input type="password"
                               name="password"
                               required>
                    </label>
                    <div class="password-strength progress js-cm-password-strength" data-passwordstrength="empty">
                        <div class="progress-bar" role="progressbar">
                            Strength
                        </div>
                    </div>

                    <ul class="password-tips">
                        <li class="letters" data-letters="false">
                            <i class="fa fa-check"></i>
                            lower and uppercase letters
                            Kleine letters en hoofdletters.
                        </li>
                        <li class="numbers" data-numbers="false">
                            <i class="fa fa-check"></i>
                            letters and numbers
                            Letters en cijfers.
                        </li>
                        <li class="characters" data-characters="false">
                            <i class="fa fa-check"></i>
                            special characters
                            Speciale characters
                        </li>
                    </ul>

Это мой JS

var validation_message = "";
function returnError () {
    return validation_message;
};

// Password validation
$.validator.addMethod("password", function(value) {
  var strength = {
        0: "empty",
        1: "bad",
        2: "weak",
        3: "strong"
    };
    var score = 0;
    // If password contains both lower and uppercase characters, increase strength value.
    if (value.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) {
         score += 1;
        $('.letters').attr('data-letters', "true");
        $('.js-cm-password-strength').attr('data-passwordstrength', strength[score]);
    } else {
        score -= 1;
        $('.letters').attr('data-letters', "false");
        $('.js-cm-password-strength').attr('data-passwordstrength', strength[score]);
    }
    // // // If it has numbers and characters, increase strength value.
    if (value.match(/([a-zA-Z])/) && value.match(/([0-9])/)) {
        score += 1;
        $('.numbers').attr('data-numbers', "true");
        $('.js-cm-password-strength').attr('data-passwordstrength', strength[score]);
    } else {
        score -= 1;
        $('.numbers').attr('data-numbers', "false");
        $('.js-cm-password-strength').attr('data-passwordstrength', strength[score]);
    }
    // // // If it has one special character, increase strength value.
    if (value.match(/([!,%,&,@,#,$,^,*,?,_,~])/)) {
        score += 1;
        $('.characters').attr('data-characters', "true");
        $('.js-cm-password-strength').attr('data-passwordstrength', strength[score]);
    } else {
        score -= 1;
        $('.characters').attr('data-characters', "false");
        $('.js-cm-password-strength').attr('data-passwordstrength', strength[score]);
    }

    if(score < 1) {
        validation_message = "Het wachtwoord is te zwak kijk bij de tips om het wachtwoord sterker te maken.";
        return false;
    } else {
        return true;
    }
}, returnError);

Правила для jQuery подтверждают http://jqueryvalidation.org/validate/

        rules: {
            password: {
                password: true
            },
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...