Удалить интервал, если выполнены условия пароля - PullRequest
0 голосов
/ 20 февраля 2019

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

Вот мой HTML-код:

                    <input name="user_password" ng-minlength="8" ng-model="passForm.user_password1" id="user_password" type="password">
                    <label class="left-align" for="user_password">Password*</label>
                </div>
                <div class="input-field col s12">
                    <input name="user_password_confirm" ng-model="passForm.user_password2" id="user_password_confirm"
                           type="password" class="validate">
                    <span style="color:red" ng-if="passForm.user_password2 && passForm.user_password1 != passForm.user_password2">
                        <ul>Confirm password do not match.</ul>
                    </span>
                    <span style="color:red; display: block !important;">
                        Password should honor following rules:<br>
                    </span>
                    <span style="color:red; display: block !important;" ng-if="!passForm.user_password1 || passForm.user_password1.$error.minlength">
                        - minimun 8 charactes<br>
                    </span>    
                    <span style="color:red; display: block !important">
                        - atleast 1 uppercase character<br>
                        - atleast 1 lowercase character<br>
                        - atleast 1 digit<br>
                        - atleast 1 special character [@$!#%*?&.]<br>
                    </span>

И мой контроллер:

$scope.changeUserPassword = function(){
            var eFlag = false;
            $scope.errors = {};
            var rePassword = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&#.])[A-Za-z\d$@$!%*?&#.]{8,}/;
            if ($scope.passForm.user_password1 && rePassword.test($scope.passForm.user_password1) == false) {
                swal('Error!', "Please enter a password honoring rules in hint",'error');
                eFlag = true;
            }

1 Ответ

0 голосов
/ 20 февраля 2019

Я бы сказал, сформулируйте каждое правило самостоятельно и соответственно удалите теги span.
То есть

var rule1 = /^[^A-Z]*[A-Z]/;
if (rule1.test($scope.passForm.user_password1)) {
    // remove the span for the uppercase here
});

var rule2 = /^[^a-z]*[a-z]/;
if (rule2.test($scope.passForm.user_password1)) {
    // remove the span for the lowercase here
});

И так далее.Поместите все правила в массив и зациклите их.

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