簡體   English   中英

ASP.NET MVC 5 RegularExpression屬性無法進行密碼驗證

[英]ASP.NET MVC 5 RegularExpression Attribute Failing For Password Validation

這是我的正則表達式:

[RegularExpression(@"^((?=.{12,}$)(?=[^\d]*\d)(?=[^a-z]*[a-z])(?=[^A-Z]*[A-Z])(?=[^\W]*\W))", ErrorMessage = "Passwords must be at least 12 characters long and contain at least an upper case letter, lower case letter, digit and a symbol")]

條件:

長12個字符,至少一個小寫字母,大寫字母和特殊字符。

在以下情況下拒絕字符串:

任何少於12個字符的字符串,

aaaaaaaaaaaaaa,

aaaaaaaaaaaaaaaa1

在以下情況下,將接受(應拒絕)字符串:

aaaaaaaaaaaaaaA,

aaaaaaaaaaaaaa#

編輯:這是我的模型中密碼獲取器和設置器的代碼。

[Required]   
[RegularExpression("^(?=.{12,}$)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@!%*?&,#]).+$", ErrorMessage = "Passwords must be at least 12 characters long and contain at least an upper case letter, lower case letter, digit and a symbol")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

嘗試這個:

您的條件:

長12個字符,至少一個小寫字母,大寫字母和特殊字符。

注意:我也添加了一個數字,因為您的驗證消息中包含數字。

[RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{12,}", ErrorMessage = "Passwords must be at least 12 characters long and contain at least an upper case letter, lower case letter, digit and a symbol")]

[RegularExpression(@"^(?=.*[az])(?=.*[AZ])(?=.*\\d)(?=.*[$@$!%*?&])[A-Za-z\\d$@$!%*?&]{12,}", ErrorMessage = "Passwords must be at least 12 characters long and contain at least an upper case letter, lower case letter, digit and a symbol")]

@SwapNeil給出的答案是正確的。

您可以在這里嘗試: https : //regex101.com/

如果仍然無法正常工作。 請檢查視圖中是否包含〜/ bundles / jqueryval。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM