Asp.net 创建密码正则表达式

Asp.net 创建密码正则表达式,asp.net,regex,Asp.net,Regex,现在我需要复制一个网站的密码表达式验证器。密码长度仅要求为8-25个字符(仅字母字符)。我觉得这很奇怪,一直在用这个正则表达式 (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,25}) 但必须选择在整个密码中包含大写字母、特殊字符和/或数字。我并不特别擅长在有可选字符的地方构建正则表达式。任何帮助都将不胜感激 我正在使用asp.net的RegularExpressionValidator此模式应该可以工作: ^[a-zA-Z]{8,25}$ ^[a-zA-

现在我需要复制一个网站的密码表达式验证器。密码长度仅要求为8-25个字符(仅字母字符)。我觉得这很奇怪,一直在用这个正则表达式

(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,25})

但必须选择在整个密码中包含大写字母、特殊字符和/或数字。我并不特别擅长在有可选字符的地方构建正则表达式。任何帮助都将不胜感激


我正在使用asp.net的
RegularExpressionValidator

此模式应该可以工作:

^[a-zA-Z]{8,25}$
^[a-zA-Z0-9]{8,25}$
^[a-zA-Z0-9$@!]{8,25}$
它匹配由8到25个拉丁字母组成的字符串

如果您还希望允许数字,则此模式应适用:

^[a-zA-Z]{8,25}$
^[a-zA-Z0-9]{8,25}$
^[a-zA-Z0-9$@!]{8,25}$
它匹配由8到25个拉丁字母或十进制数字组成的字符串

如果您还希望允许使用特殊字符,则此模式应适用:

^[a-zA-Z]{8,25}$
^[a-zA-Z0-9]{8,25}$
^[a-zA-Z0-9$@!]{8,25}$

它匹配由8到25个拉丁字母、十进制数字或符号、
$
@
组成的字符串(当然,您可以很容易地添加到该集合中)。

此模式应适用于:

^[a-zA-Z]{8,25}$
^[a-zA-Z0-9]{8,25}$
^[a-zA-Z0-9$@!]{8,25}$
它匹配由8到25个拉丁字母组成的字符串

如果您还希望允许数字,则此模式应适用:

^[a-zA-Z]{8,25}$
^[a-zA-Z0-9]{8,25}$
^[a-zA-Z0-9$@!]{8,25}$
它匹配由8到25个拉丁字母或十进制数字组成的字符串

如果您还希望允许使用特殊字符,则此模式应适用:

^[a-zA-Z]{8,25}$
^[a-zA-Z0-9]{8,25}$
^[a-zA-Z0-9$@!]{8,25}$

它匹配由8到25个拉丁字母、十进制数字或符号、
$
@
组成的字符串(当然,您可以很容易地添加到这个集合中)。

您当前的正则表达式不起作用,因为它将接受第9个字符中的特殊字符(事实上,第9个字符之后的任何字符,甚至第26个字符,因为您没有字符串结尾锚点)

你可能想要这样的东西:

^(?=.*[a-z])[A-Za-z0-9]{8,25}$
这首先确保有小写字母(您提到大写和数字是可选的,因此这使得必须使用小写),然后只允许使用大写和数字

编辑:要允许使用任何特殊字符,可以使用以下命令:

^(?=.*[a-z]).{8,25}$
我对您的问题的理解是,密码的第一个要求是必须包含小写字母。现在的选择是,它还可以包含其他字符。如果这不对,请告诉我


您当前的正则表达式无法工作,因为它将接受第9个字符中的特殊字符(事实上,第9个字符之后的任何字符,甚至是第26个字符,因为您没有字符串结尾锚点)

你可能想要这样的东西:

^(?=.*[a-z])[A-Za-z0-9]{8,25}$
这首先确保有小写字母(您提到大写和数字是可选的,因此这使得必须使用小写),然后只允许使用大写和数字

编辑:要允许使用任何特殊字符,可以使用以下命令:

^(?=.*[a-z]).{8,25}$
我对您的问题的理解是,密码的第一个要求是必须包含小写字母。现在的选择是,它还可以包含其他字符。如果这不对,请告诉我



现在就是这样,你的确切问题是什么?如果你只输入
abcdefghijklmnop
它就会失败,你还有其他问题吗?作为一个建议,8个字母字符是一个非常弱的密码,即使使用随机序列,而不是大多数人会尝试使用的单词。-不要把你的实际密码放进去,只是你希望看到的例子。@Tragedian我很感激你的评论,但我只是按照别人告诉我的去做。尽管我已经表达了它有多弱。现在是这样,你的确切问题是什么?如果你只输入
abcdefghijklmnop
,它会失败,并且应该会通过。你还有其他问题吗?作为建议,8个字母字符是一个非常弱的密码,即使使用随机序列,而不是大多数人会尝试使用的单词。-不要把你的实际密码放进去,只是你希望看到的例子。@Tragedian我很感激你的评论,但我只是按照别人告诉我的去做。尽管我已经表达了它有多弱。我通过将文本框的长度限制为25来处理26+。@Brett-Ahh,好的,这对字符限制有效,但正则表达式仍然允许
password@
@Brett更新正则表达式。我通过将文本框的长度限制为25来处理26+。@Brett-Ahh,好的,这适用于字符限制,但正则表达式仍然允许@Brett更新正则表达式。对于特殊的chacater
$,@,我该如何修改它!,ect
@Brett你的问题没有提到特殊字符。你到底想干什么?@Jerry对不起,你是对的。我已经修改了这个问题。我只想让类似于
Brett$234Stack
这样的东西发挥作用。对于特殊的chacaters
$,@,!,我该如何修改它呢!,ect
@Brett你的问题没有提到特殊字符。你到底想干什么?@Jerry对不起,你是对的。我已经修改了这个问题。我只想让像
Brett$234Stack
这样的东西起作用