jQuery Validate 插件 - 密码检查 - 最低要求 - 正则表达式 [英] jQuery Validate plugin - password check - minimum requirements - Regex

查看:16
本文介绍了jQuery Validate 插件 - 密码检查 - 最低要求 - 正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的密码检查器有点问题.

I've got a little problem with my password-checker.

有一个包含一些字段的注册表单.我使用 jQuery Validate 插件来验证用户输入.

There's got a registration form with some fields. I use jQuery Validate plugin to validate user-inputs.

除了密码验证之外,一切正常:

It all works except the password-validation:

密码应满足一些最低要求:

The password should meet some minimum requirements:

  • 最小长度:8 -> 我只使用 'minlength: 8'
  • 至少一个小写字符
  • 至少一位数字
  • 允许的字符:A-Z a-z 0-9 @ * _ - .!

目前我使用此代码验证密码:

At the moment I use this code to validate the password:

$.validator.addMethod("pwcheck",
function(value, element) {
   return /^[A-Za-z0-9d=!-@._*]+$/.test(value);
});

本准则适用于允许的字符,但不适用于最低要求.我知道您可以将例如 (?=.*[a-z]) 用于小写要求.但我就是不让它工作.

This Code works for the allowed characters but not for minimum requirements. I know that you can use for example (?=.*[a-z]) for a lower-case-requirement. But I just don't get it to work.

如果我添加 (?=.*[a-z]) 整个代码将不再起作用.我需要知道如何正确地将代码添加到现有代码中.

If I add (?=.*[a-z]) the whole code doesn't work anymore. I need to know how to properly add the code to the existing one.

感谢您的回答!

这是完整的代码

<script>
                $(function() {
                    $("#regform").validate({
                        rules: {
                            forename: {
                                required: true
                            },
                            surname: {
                                required: true
                            },
                            username: {
                                required: true
                            },
                            password: {
                                required: true,
                                pwcheck: true,
                                minlength: 8
                            },
                            password2: {
                                required: true,
                                equalTo: "#password"
                            },
                            mail1: {
                                required: true,
                                email: true
                            },
                            mail2: {
                                required: true,
                                equalTo: "#mail1"
                            }
                        },
                        messages: {
                            forename: {
                                required: "Vornamen angeben"
                            },
                            surname: {
                                required: "Nachnamen angeben"
                            },
                            username: {
                                required: "Usernamen angeben"
                            },
                            password: {
                                required: "Passwort angeben",
                                pwcheck: "Das Passwort entspricht nicht den Kriterien!",
                                minlength: "Das Passwort entspricht nicht den Kriterien!"
                            },
                            password2: {
                                required: "Passwort wiederholen",
                                equalTo: "Die Passwörter stimmen nicht überein"
                            },
                            mail1: {
                                required: "Mail-Adresse angeben",
                                email: "ungültiges Mail-Format"
                            },
                            mail2: {
                                required: "Mail-Adresse wiederholen",
                                equalTo: "Die Mail-Adressen stimmen nicht überein"
                            }
                        }
                    });

                    $.validator.addMethod("pwcheck",
                        function(value, element) {
                            return /^[A-Za-z0-9d=!-@._*]+$/.test(value);
                    });
                });
                </script>

推荐答案

如果我添加 (?=.*[a-z]) 整个代码将不再起作用.

If I add (?=.*[a-z]) the whole code doesn't work anymore.

在此处添加:

/^(?=.*[a-z])[A-Za-z0-9d=!-@._*]+$/

但是,如果没有前瞻,这样做会容易得多:

However, it's much easier to do this without a lookahead:

$.validator.addMethod("pwcheck", function(value) {
   return /^[A-Za-z0-9d=!-@._*]*$/.test(value) // consists of only these
       && /[a-z]/.test(value) // has a lowercase letter
       && /d/.test(value) // has a digit
});

这篇关于jQuery Validate 插件 - 密码检查 - 最低要求 - 正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆