【问题标题】:Need regular expressions for username and password需要用户名和密码的正则表达式
【发布时间】:2011-06-07 06:45:50
【问题描述】:

我需要两个正则表达式的帮助(ASP.NET MVC 2 应用程序)。这就是我需要的:

用户名:

  • 必须至少包含一个字母;数字是允许的,但不是必需的
  • 不能包含空格
  • 不允许使用特殊字符,例如~!@#$%^&
  • 下划线和“.” (点)是允许的
  • 不能以空格或下划线开头

密码:

  • 必须至少包含一个字母和一个数字
  • 不能包含空格
  • 区分大小写

我尝试使用 [a-zA-Z0-9]+[\w.][a-zA-Z]+[\w.] 作为用户名,但对于“a123456”失败了

【问题讨论】:

  • 你有没有尝试过制作它们 - 你有什么?
  • “密码不能包含空格” - 为什么?
  • 我不想把“密码”当成通行证。没有空格..
  • “需要帮助”还是“需要获取”?请证明您至少尝试过自己编写这些内容(可能使用one of the many related questions on StackOverflow 的答案),然后在遇到特定困难时提出问题。一方面,我不会为你编写代码(特别是如果你有钱编写代码)。
  • @Mishko:这并不能回答我的问题。我想知道你为什么关心密码中是否有空格。这是一个让你思考的反问,因为答案总是:你不应该关心。让用户使用他们喜欢的任何字符。

标签: asp.net-mvc regex


【解决方案1】:

用户名的正则表达式:

^[a-zA-Z]\w+|[0-9][0-9_]*[a-zA-Z]+\w*$

另一个用户名的正则表达式,使用前瞻..

^(?=.*[a-zA-Z].*)[a-zA-Z0-9]\w*$

Paolo 的密码正则表达式是可以的,但您应该将 ^ 放在开头,将 $ 放在正则表达式的末尾以指定捕获的开始和结束。

更新:

据说用户名也可以包含点字符。我已经修改了正则表达式,但我假设用户名也不能以点字符开头。这是修改后的正则表达式;

^([a-zA-Z][\w.]+|[0-9][0-9_.]*[a-zA-Z]+[\w.]*)$

【讨论】:

  • 对于用户名“1_aaaaaa”,第一个正则表达式不起作用,但第二个没问题,目前...仍在测试...
【解决方案2】:

你也可以在这里构建它

http://gskinner.com/RegExr/

【讨论】:

    【解决方案3】:

    感谢Gursel,这个正则表达式应该为用户名做:

    ([a-zA-Z\d]+[\w\d]*|)[a-zA-Z]+[\w\d.]*
    

    (Regexr here)

    这个是密码:

    ([a-zA-Z]+[\d]+|[\d]+[a-zA-Z]+)[^\s]*
    

    (Regexr here).

    【讨论】:

    • 正则表达式用户名无效,可以接受不带字母的用户名。
    猜你喜欢
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    相关资源
    最近更新 更多