如果满足密码条件,请删除span

问题描述 投票:0回答:1

我正在使用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;
            }
javascript html angularjs regex
1个回答
0
投票

我会说自己制定每个规则并相应地删除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
});

等等。将所有规则放在一个数组中并循环遍历它们。

© www.soinside.com 2019 - 2024. All rights reserved.