注释RegexExpression不起作用

时间:2018-08-18 14:53:29

标签: c# regex-negation

在这里,我尝试在将用户名和密码签入数据库之前用批注验证用户名和密码,但是正则表达式与绝对正确的用户名和密码不匹配。为了进行验证,我使用此方法:

public bool IsValid(object obj)
{
    var validationContext = new System.ComponentModel.DataAnnotations.ValidationContext(obj);
    var validationResults = new List<ValidationResult>();

    var isValid = Validator.TryValidateObject(obj, validationContext, validationResults, true);

    return isValid;
}

但是Username = Vladimir12Password = vovata12不匹配。这是AccountLoginDto.cs:

public class AccountLoginDTO
{
    [Required]
    [RegularExpression(@"^[0-9a-zA-Z]{6-12}$")]
    public string Username { get; set; }

    [Required]
    [RegularExpression(@"^[0-9a-z]{6-12}$")]
    public string Password { get; set; }
}

当我调用方法时:

var dto = new AccountLoginDTO
{
    Username = username,
    Password = passwword
};

if (!validation.IsValid(dto))
{
    throw new ArgumentException(IncorectInput);
}

由于用户名和密码不匹配,因此例外。

1 个答案:

答案 0 :(得分:1)

{6-12}无效,如果您希望该集合的长度在6到12个字符之间,请使用{6,12}