我有以下的正則表達式註釋:模型驗證的正則表達式永遠不匹配
[RegularExpression(@"(?=.{6,})(?=(.*\d){1,})(?=(.*\W){1,})", ErrorMessage = "Password is not strong enough!")]
public string Password { get; set; }
這是從我的正則表達式複製/粘貼我在我的MembershipProvider,它的作品,因爲我可以像「ADMIN1密碼註冊使用*」。我在RegexHero中測試了這個正則表達式,它確實有效。
當我將表單發回控制器時,該值也存在,但該模型從不驗證。
任何人都有線索,這可能是什麼?
由於提前,
編輯:
我與驗證只含有5個號碼串的正則表達式進行測試,這並驗證我當輸入12345,並且未能與其他字符串如「ABC」。所以正則表達式似乎工作..
+1。看起來你可以簡單地用'(?:non-capturing)'組代替所有'(捕獲)'組來解決這個問題。所以正則表達式會變成(?=。{6,})(?=(?:。* \ d){1,})(?=(?:。* \ W){1,})'。 – 2012-08-07 13:52:27
這對我有用。我在這裏添加了我的完整代碼示例:https://gist.github.com/4198259 – 2012-12-03 21:30:43