正则表达式为字母数字密码,至少包含1个数字和字符

时间:2009-07-28 17:53:13

标签: c# javascript

需要有关字母数字密码的正则表达式的帮助,至少包含1个数字和字符,长度必须介于8到20个字符之间。

我有这个,但似乎没有工作(它也没有长度要求):

^[A-Za-z0-9]*[A-Za-z][A-Za-z0-9]*$

6 个答案:

答案 0 :(得分:9)

如果你看看这个MSDN link,它给出了一个密码验证RegEx表达式的例子,以及(更具体地说)如何在ASP.NET中使用它。

对于你想要完成的任务,这应该有效:

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

这需要至少一个数字,至少一个字母字符,没有特殊字符,长度为8-20个字符。

答案 1 :(得分:3)

为什么不使用一些简单的函数来检查?

checkPasswordLength( String password);
checkPasswordNumber( String password);

可能还需要多次重复和连续检查相同字符的出现次数。

答案 2 :(得分:1)

^(?=.{8,20}$)(?=.*[0-9])(?=.*[a-zA-Z]).*

? :)

答案 3 :(得分:0)

使用一些简单的字符串函数进行验证,而不是试图将难以验证的正则表达式用于执行此操作,这不是更好吗?

答案 4 :(得分:0)

这样的事情将更接近您的需求。 (不过,我没有测试过。)

Regex test = new Regex("^(?:(?<ch>[A-Za-z])|(?<num>[9-0])){8,20}$");
Match m = test.Match(input);
if (m.Success && m.Groups["ch"].Captures.Count > 1 && m.Groups["num"].Captures.Count > 1)
{
  // It's a good password.
}

答案 5 :(得分:0)

此代码适用于javascript

// *********** ALPHA-Numeric check ***************************
function checkAlphaNumeric(val)
{
    var mystring=new String(val)

    if(mystring.search(/[0-9]+/)==-1) // Check at-leat one number
    {
        return false;
    }
    if(mystring.search(/[A-Z]+/)==-1 && mystring.search(/[a-z]+/)==-1) // Check at-leat one character
    {
        return false;
    }
}