Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 验证当前国防部密码标准的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 验证当前国防部密码标准的正则表达式

Javascript 验证当前国防部密码标准的正则表达式,javascript,regex,Javascript,Regex,这里有两个不同的还没有起作用 一: 规则: 密码长度必须至少为15个字符。 密码必须至少包含以下4个类别中的2个字符: 大写字母A-Z 小写字母a-z 数字0-9 特殊字符{}:;,.?-=+|!@$%^&()[]/\ 密码不得包含任何空格 谢谢你的帮助 ----编辑---- 一些样品要试一试 2wsx@WSX3edc#EDC 3edc#EDC4rfv$RFV nhy6NHY^mju7MJU& 1qaz!QAZ2wsx@WSX 我已经测试了他们,但我没有让他们工作 我觉得下面的一些例子应该有

这里有两个不同的还没有起作用

一:

规则:
密码长度必须至少为15个字符。
密码必须至少包含以下4个类别中的2个字符:

  • 大写字母
    A-Z
  • 小写字母
    a-z
  • 数字
    0-9
  • 特殊字符
    {}:;,.?-=+|!@$%^&()[]/\
密码不得包含任何空格

谢谢你的帮助

----编辑----

一些样品要试一试

2wsx@WSX3edc#EDC

3edc#EDC4rfv$RFV

nhy6NHY^mju7MJU&

1qaz!QAZ2wsx@WSX

我已经测试了他们,但我没有让他们工作


我觉得下面的一些例子应该有效,但它们不起作用,否则我一定是做错了什么。

为什么要在一个正则表达式中完成这些工作?做一些类似于:

if( length($password) >= 15 &&
    ($password =~ y/A-Z//) >= 2 &&
    ($password =~ y/a-z//) >= 2 &&
    ($password =~ y/0-9//) >= 2 &&
    ($password =~ y/{}:;,.?\-=+|<>!@#%^&()\[\]///) >= 2 &&
    $password =~ /^\S+$/ ) {

  print "password validates!\n";
} else {
  print "password doesn't validate!\n";
}
if(长度($password)>=15&&
($password=~y/A-Z/)>=2&&
($password=~y/a-z/)>=2&&
($password=~y/0-9/)>=2&&
($password=~y/{}:;,.?\-=+|!@%^&(()\[\]//)>=2&&
$password=~/^\S+$/){
打印“密码验证!\n”;
}否则{
打印“密码未验证!\n”;
}

这样,当您必须添加更多标准时,很容易做到。这也比把它全部放在一个巨大的正则表达式中可读性和可维护性好得多。

为什么要把它全部放在一个正则表达式中?做一些类似于:

if( length($password) >= 15 &&
    ($password =~ y/A-Z//) >= 2 &&
    ($password =~ y/a-z//) >= 2 &&
    ($password =~ y/0-9//) >= 2 &&
    ($password =~ y/{}:;,.?\-=+|<>!@#%^&()\[\]///) >= 2 &&
    $password =~ /^\S+$/ ) {

  print "password validates!\n";
} else {
  print "password doesn't validate!\n";
}
if(长度($password)>=15&&
($password=~y/A-Z/)>=2&&
($password=~y/a-z/)>=2&&
($password=~y/0-9/)>=2&&
($password=~y/{}:;,.?\-=+|!@%^&(()\[\]//)>=2&&
$password=~/^\S+$/){
打印“密码验证!\n”;
}否则{
打印“密码未验证!\n”;
}

这样,当您必须添加更多标准时,很容易做到。这也比把所有的正则表达式放在一个巨大的正则表达式中可读性和可维护性好得多。

要么逐个检查这些正则表达式,要么从它们中创建一个大的基于前瞻性的表达式

规则:

  • 密码长度必须至少为15个字符
^.{15,}$ 密码必须至少包含以下4个类别中的2个字符:

  • 大写字母(A-Z)
^(.?[A-Z]){2}
  • 小写字母(a-z)
^(.?[a-z]){2}
  • 数字(0-9)
^(.*?[0-9]){2}
  • 特殊字符(
    {}:;,.?-=+|!@$%^&()[]/
^(.*?[{}:;,.?\-=+|!@#$%^&()\[\]/]){2} 密码不得包含任何空格

为什么??但如果必须,请将第一个表达式更改为

^\S{15,}$ ^\S{15,}$
要么一个接一个地检查这些正则表达式,要么从中创建一个基于前瞻性的大型表达式

规则:

  • 密码长度必须至少为15个字符
^.{15,}$ 密码必须至少包含以下4个类别中的2个字符:

  • 大写字母(A-Z)
^(.?[A-Z]){2}
  • 小写字母(a-z)
^(.?[a-z]){2}
  • 数字(0-9)
^(.*?[0-9]){2}
  • 特殊字符(
    {}:;,.?-=+|!@$%^&()[]/
^(.*?[{}:;,.?\-=+|!@#$%^&()\[\]/]){2} 密码不得包含任何空格

为什么??但如果必须,请将第一个表达式更改为

^\S{15,}$ ^\S{15,}$
(?=.*)(?=.{15})(?=.[A-Z].[A-Z])(?=.[A-Z].[A-Z])(?=.[0-9].[0-9])(?=.[{}:;,.?\-=+.[}:]、.?\-=+.+.[A-Z]/\].[{}:;,.?-=+.++.[A-124;!+++++++++++-.[\]

我的正则表达式应该可以工作,即使是分开的字符。例如Ab0%Ab0%0000000000000(你看,没有
AA
,两个
A
是分开的)。我已转义最小字符数(仅
^
]

  • ^字符串的开头

  • (?!*)Not(任何字符重复*次,后跟空格)

  • (?=.{15})任意字符15次(按所写,即使在15次之后还有其他字符,也不会改变任何内容)

  • (?=.[A-Z].[A-Z])任意字符重复*次,大写字母,任意字符重复*次,大写字母

  • (?=.[a-z].[a-z])任何字符重复*次,小写字母,任何字符重复*次,小写字母

  • (?=.[0-9].[0-9])任何字符重复*次,一个数字,任何字符重复*次,一个数字

  • (?=.[{}:;,.?\-=++\!@$%\^&()[\]/\].[{}:;,.?\-=+\\%^&()[\]/\])任何字符重复*次,一个符号,任何字符重复*次,一个符号
所有的子表达式都是零宽度前瞻(或零宽度负前瞻)和零宽度负前瞻)的零宽度,所有的子表达式都是零宽度前瞻(或零宽度负前瞻)和零宽度,所有的子表达式都是零宽度,所有的子表达式都是零宽度前瞻(或零宽度负前瞻)和零宽度,所有的子表达式都是零宽度前瞻(或零宽度负宽度负前瞻)和他们从第一个字符开始,所以他们都在“和”中,所以他们都在“和”中,并且他们必须都是所有都是真的。

<代码::::::::::::::((((,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)

我的正则表达式应该可以工作,即使是分开的字符。例如Ab0%Ab0%0000000000000(你看,没有
AA
,两个
A
是分开的)。我已转义最小字符数(仅
^
]

  • ^字符串的开头

  • (?!*)Not(任何字符重复*次,后跟空格)

  • (?=.{15})任意字符15次(按所写,即使在15次之后还有其他字符,也不会改变任何内容)

  • (?=.[A-Z].[A-Z])任意字符重复*次,大写字母,任意字符重复*次,大写字母

  • (?=.[a-z].[a-z])任何字符
    ^(.*?[A-Z]){2}
    ^(.*?[a-z]){2}
    ^(.*?[0-9]){2}
    ^(.*?[{}:;,.?\-=+|!@#$%^&()\[\]/]){2}
    ^\S{15,}$
    
    ^((?=(.*[\d]){2,})(?=(.*[a-z]){2,})(?=(.*[A-Z]){2,})(?=(.*[^\w\d\s]){2,})).{15,}$