2011-06-21 65 views
0

我剛開始搞亂regularexpressions,但基本上與這一個(我在網上找到btw)應該要求密碼在8 - 10之間,但每當我嘗試出來並放入正確的長度它仍然顯示錯誤信息。有任何想法嗎? 我還需要包括1個小,1個大寫並在驗證1號..mvc dataannotation regularexpression

public class password : IValidatableObject 
{ 
    [Required] 
    [RegularExpression("(?=^.{8,10}$)", ErrorMessage = "Password is invalid.")] 
    public string ConfirmPWD { get; set; } 
    [Required(ErrorMessage="Confirm Password field is required.")] 
    public string ConfirmPWD { get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     if (ConfirmPWD != ConfirmPWD) 
      yield return new ValidationResult("Not identical."); 
    } 
} 

回答

0

嘗試只".{8,10}"。此外,更具體的錯誤消息可能對您的用戶有所幫助。

編輯:來把它爲什麼不直接使用StringLengthAttribute這個...

[StringLength(10, MinLength = 8, ErrorMessage = "Password must be between 8 and 10 characters")]

那麼你可以使用正則表達式的更爲具體的規定,如所需的複雜性。

+0

好,我有一個2 - 3人,我需要補充,難道我只是添加就可以了多個正則表達式?例如。 1爲「密碼需要至少有一個大寫字母,1爲」密碼需要至少有一個數字字符「,etci覺得我需要做一些永恆的驗證來檢查它,我只是不知道如何去做它.. – gdubs

+0

@gdubs:請參閱我的編輯 –

+0

這可能適用於stringlength,但對於其餘部分,如1大寫,1小寫,1數字需要每個具體的消息,如果我把它放在一個正則表達式它只會給我一個errormessage,這是正則表達式行上指定的一個。 – gdubs

1

你可能想是這樣的:

[RegularExpression(@"^.{8,10}$", ErrorMessage = "Must be between 8 and 10 characters.")]