逐个组件解释密码正则表达式(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