Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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/9/ssl/3.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,/(?=.*\d)(?=.[a-z])(?=.[a-z])。{6,8}/ 此正则表达式用于验证密码,密码应至少包含一个数字,包括小写和大写字符。有人能用更小的组件解释这个正则表达式吗?(?=.*\d)确保字符串中有一个数字 (?=.[a-z])确保字符串中包含小写ASCII字母 (?=.[A-Z])确保字符串中包含大写ASCII字母 {6,8}匹配至少6个字符和8个字符的字符串 由于缺少锚,您的正则表达式将匹配任何子字符串为满足上述4个条件的字符串。(?=…)表示:让当前位置后的字符串包含。 (

/(?=.*\d)(?=.[a-z])(?=.[a-z])。{6,8}/

此正则表达式用于验证密码,密码应至少包含一个数字,包括小写和大写字符。有人能用更小的组件解释这个正则表达式吗?

(?=.*\d)
确保字符串中有一个数字

(?=.[a-z])
确保字符串中包含小写ASCII字母

(?=.[A-Z])
确保字符串中包含大写ASCII字母

{6,8}
匹配至少6个字符和8个字符的字符串

由于缺少锚,您的正则表达式将匹配任何子字符串为满足上述4个条件的字符串。

(?=…)
表示:让当前位置后的字符串包含

(?=.*\d)    # Somewhere, at least one digit should appear
(?=.*[a-z]) #            and at least a lowercase letter
(?=.*[A-Z]) #            and at least an uppercase letter
.{6,8}      #            must consist of 6-8 characters
您的图案缺少字符串开头和结尾的标记。添加
^
$

/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,8}$/

正则表达式是不明确的。您不应使用字符“.*”的组合。句点表示任何字符和星号,可能出现0次或更多次,这可能是整个字符串

/(?=.\d)(?=.[a-z])(?=.*[A-Z]).{6,8}/
此正则表达式通常用于验证密码,即

密码应包含
1个大写
1个小写
1个数字
无特殊字符

(?=.*\d) //at least 1 numeric charater.

(?=.*[a-z]) //atleast 1 lowercase.

(?=.*[A-Z]) //atleast 1 uppercase.

.{6,8} //string is of 6 to 8 length.

希望这有帮助。

看看不同的部分

(?=.*\d)
密码必须至少包含6个字符,最多8个字母

^(?=.*\d)
包含一个数字

(?=.[a-z])
一个小字母表和

(?=.[A-Z])
一个大写字母

你可以这样用

 ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{lower_limit, upper_limit}$
至少一个小写字母、一个大写字母和一个长度有限制的数字(小写、大写)

如果没有开头^或结尾$,则这将匹配与上述规则匹配的任何6-8个字符的字符串


如果将*改为+,则它将匹配1个或多个字符

询问有关正则表达式的问题,而不是有关正则表达式的问题。@LightnessRacesinOrbit公平地说,这只是一个示例。与大多数示例一样,假设该知识适用于其他场景(当然,同样,它只是ASCII字母和数字。此外,如果没有锚,长度超过8个字符的字符串也将(部分)匹配)…+1并删除我的,因为您键入的速度更快。
 ?= is look ahead for the following feature within brackets ()
 then (?=.*\d) 0 or more of any character that is a decimal 0-9
 then (?=.*[a-z]) after that look ahead for 0 or more a-z characters 
 then (?=.*[A-Z]) after that look ahead for 0 or more A-Z uppercase characters 
 .{6,8}/ and then must be 6-8 character long