Asp.net 密码的正则表达式匹配
我正在使用VB在ASP.Net中构建表单,我有一个文本框,我想根据以下规则验证它:Asp.net 密码的正则表达式匹配,asp.net,regex,vb.net,Asp.net,Regex,Vb.net,我正在使用VB在ASP.Net中构建表单,我有一个文本框,我想根据以下规则验证它: 长度必须为6-20个字符 可以包含字母,也可以是所有字母 可以包含以下特殊字符:!@$%^&*+-=(){}:;,'./? 不能包含任何空格 不能是所有数字,也不需要数字 这件事无关紧要 这些要求不是我设定的……这正是我必须处理的 因此,以下内容将匹配: TestUserPass Te$tU$e^p@%} testuserpass test{user}n@ame 以下内容不匹配: 8392039 dhj#5
- 长度必须为6-20个字符
- 可以包含字母,也可以是所有字母
- 可以包含以下特殊字符:
!@$%^&*+-=(){}:;,'./?代码>
- 不能包含任何空格
- 不能是所有数字,也不需要数字
- 这件事无关紧要
TestUserPass
Te$tU$e^p@%}
testuserpass
test{user}n@ame
以下内容不匹配:
8392039
dhj#5|3j
希望这能让我知道我在找什么
以下是我到目前为止所掌握的:\b[a-zA-Z0-9!@\$%\^&*\+=\(\){}:;,'\./\?-]{6,20}\b
我相信这对所有事情都有效,除了使条目都是数字的实例无效。这是我一直在努力解决的所有数字部分,尽管也许有人会在我已经拥有的东西中发现一个缺陷。非常感谢您的帮助 您应该使用不同的定位点,并且您可以使用来确保存在除数字以外的其他字符:
^(?[0-9]*$)[a-zA-Z0-9!@\$%^&*+=(){}:;,'./?-]{6,20}$
此外,您不需要转义字符类中的(大多数)正则表达式元字符,因为它们在那里没有特殊意义。使用此正则表达式
^(?!\d+$)[a-zA-Z\d!@#$%^&*+=(){}:;,'./?-]{6,20}$
--------
|
|->dont match further if all are digits
-
字符类中表示一个范围,应该转义,或者应该在开头或结尾…为什么不为每个规则指定一个单独的正则表达式?因此,您的问题是:如何查找是否只存在数字字符串。你试过什么吗?@Greg我本来可以这么做的,但我希望一个表达式和一个验证控件能够简单。谢谢你提出的建设性问题@我的问题不是这样的。我只知道如何匹配一串数字……我的问题是如何将它们与我已经拥有的结合起来。在这种情况下,我需要帮助的是消极的前瞻性断言。这是我在这里发布的第一个问题,因此,如果问题不够清楚,或者如果我没有首先证明我已经做了一些研究,我深表歉意。感谢您的快速响应和一个有效的正则表达式。更重要的是,感谢你解释为什么它有效,我以前错过了什么,以及如何调整我已经拥有的。谢谢你的帮助!你的正则表达式和蒂姆的一样完美。