使用regex进行jQuery/Javascript密码验证

使用regex进行jQuery/Javascript密码验证,javascript,jquery,regex,Javascript,Jquery,Regex,我正在尝试使用regex或javascript实现密码验证。 不幸的是,我对Regex完全是个新手:/ 这些准则是: 最小长度:8个字符(可以是大写或小写) 必须包含1个特殊字符(类似于!?$%&@) 必须至少包含一个数字 我找到了以下代码段,但在检查至少是否有特殊+数字类型的字符时丢失了该代码段 function validPassword(password) { var has_letters = (/[a-zA-Z]/).test(password); var has_

我正在尝试使用regex或javascript实现密码验证。 不幸的是,我对Regex完全是个新手:/

这些准则是:

  • 最小长度:8个字符(可以是大写或小写)
  • 必须包含1个特殊字符(类似于!?$%&@)
  • 必须至少包含一个数字
我找到了以下代码段,但在检查至少是否有特殊+数字类型的字符时丢失了该代码段

function validPassword(password) {
    var has_letters = (/[a-zA-Z]/).test(password);
    var has_numbers = (/[0-9]/).test(password);
    var has_length = 3 <= password.length && password.length <= 30;
    return has_letters && has_numbers && has_length;
}
功能有效密码(密码){
var有字母=(/[a-zA-Z]/)。测试(密码);
var具有_编号=(/[0-9]/)。测试(密码);
var的长度=3增加一个额外检查:

function validPassword(password) {
    var has_letters = /[a-zA-Z]/.test(password);
    var has_numbers = /\d/.test(password);
    var has_special = /[!?$%&@]/.test(password);
    var has_length = (password.length >=8 && password.length <= 30);

    return has_letters && has_numbers && has_special && has_length;
}
增加一张额外支票:

function validPassword(password) {
    var has_letters = /[a-zA-Z]/.test(password);
    var has_numbers = /\d/.test(password);
    var has_special = /[!?$%&@]/.test(password);
    var has_length = (password.length >=8 && password.length <= 30);

    return has_letters && has_numbers && has_special && has_length;
}
另一种方法是

function validPassword(password) {

    return password.length > 8 
       && password.match( /[\d]/ ) 
        && password.split( /[\W]/ ).length == 2 ;
}
password.length>8
检查长度应至少为8

password.match(/[\d]/)
检查它是否至少有一个数字

password.split(/[\W]/).length==2检查它是否有一个特殊字符

function validPassword(password) {

    return password.length > 8 
       && password.match( /[\d]/ ) 
        && password.split( /[\W]/ ).length == 2 ;
}
password.length>8
检查长度应至少为8

password.match(/[\d]/)
检查它是否至少有一个数字


password.split(/[\W]/).length==2检查它是否有一个特殊字符

您可以使用下面的正则表达式验证密码:

var regex = "^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$";

这将检查至少8个字符(至少1个字母、1个数字和1个特殊字符)的验证。

您可以使用下面的正则表达式验证密码:

var regex = "^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$";

这将检查至少8个字符(至少1个字母、1个数字和1个特殊字符)的验证。

您的正则表达式应如下所示:

(?=^.{8,}$)(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9]).*
以下是详细信息:

(?=^.{6,}$) - String is > 5 chars
(?=.*[0-9]) - Contains a digit
(?=.*[A-Z]) - Contains an uppercase letter
(?=.*[a-z]) - Contains a lowercase letter
(?=.*[^A-Za-z0-9]) - A character not being alphanumeric.

您的正则表达式应该如下所示:

(?=^.{8,}$)(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9]).*
以下是详细信息:

(?=^.{6,}$) - String is > 5 chars
(?=.*[0-9]) - Contains a digit
(?=.*[A-Z]) - Contains an uppercase letter
(?=.*[a-z]) - Contains a lowercase letter
(?=.*[^A-Za-z0-9]) - A character not being alphanumeric.

我想它不会检查特殊字符和数字(?)上的长度=1我相信你至少想要一个特殊字符?还是你想要一个确切的特殊字符?@Fuxi你没有说“数字应该正好是一”,你说
必须至少包含一个数字
@anubhava是的,很抱歉……至少数字是正确的我想它没有检查特殊字符和数(?)我相信你至少想要一个特殊字符?还是你想要一个精确的特殊字符?@Fuxi你没有说“数字应该是精确的一”,你说的是
必须至少包含一个数字
@anubhava是的,你是对的,很抱歉..至少数字是正确的任何一行让你水平滚动以查看它都是正确的哦,该死的长;)@NiettheDarkAbsol希望现在不太长:)任何让你水平滚动查看的行都太长;)@NiettheDarkAbsol希望现在不太长:)