正则表达式密码验证组合

时间:2014-03-10 14:22:48

标签: c# regex

需要一些正则表达式的帮助,我已经完成了我需要做的事情,但只有两个步骤,我已经尝试了多次重新考虑,但我无法将两个正则表达式只用于一个。 有人可以指点我正确的方向吗? (已经通过大量的教程,建设者和什么不是,但似乎不够聪明,弄明白!)

这是用于密码验证,确保至少有一个字符,一个数字,一个大写字母,并确保第一个和最后一个字符不是数字,密码长度至少为8个字符。这是服务器端版本,但我也将把正则表达式放在客户端。

private bool ValidatePassword(string input)
{
    bool _return;
    var regEx = new Regex(@"^(?=(.*\d))(?=.*[a-z])(?=.*[A-Z])(?!\d).{8,}$");
    _return = regEx.IsMatch(input);

    if (_return)
    {
        regEx = new Regex(@"[^1](\D*)$");
        _return = regEx.IsMatch(input);
    }

    return _return;
}

2 个答案:

答案 0 :(得分:0)

这会有用吗?

var regEx = new Regex(@"^(?=(.*\d))(?=.*[a-z])(?=.*[A-Z])(?!\d).{7,}\D$");

在这里演示:http://rubular.com/r/xyiSz3RCQr

答案 1 :(得分:0)

试试这个:

^\D{1}((?=(.*\d))(?=.*[a-z])(?=.*[A-Z])(?!\d).{6,})\D{1}$