我在我的EF元數據使用RegularExpressionAttribute像這樣:RegularExpressionAttribute行爲與正則表達式不同或RegexStringValidator
[RegularExpression("[A-Z]+")]
public string Code { get; set; }
並正確不讓我進入比A-Z在場上的任何地方的任何其他。
在其他地方我想用同樣的reg表達式中的代碼,所以我轉過身來,正則表達式,像這樣:
var regex = new Regex("[A-Z]+");
Console.WriteLine(regex.IsMatch("B")); //true
Console.WriteLine(regex.IsMatch("1")); //false
Console.WriteLine(regex.IsMatch("A1")); //true - why?
而且RegexStringValidator的工作方式相同的正則表達式。
我在做什麼錯?
+1的校正和完整的解釋。 – hometoast 2012-07-25 14:02:46
謝謝,關於爲什麼我不需要在RegularExpressionAttribute中錨定表達式的任何想法? – weston 2012-07-25 14:07:53
@weston [推測]因爲有了這個屬性,你幾乎肯定希望匹配整個事物,所以這是默認的一些機制(這是默認情況下做正確事情的屬性)。缺少默認的「匹配整個字符串」部分反映了正則表達式的歷史以及它們用於分割字符串和多個匹配的情況,這兩種匹配都不適用於字段驗證。 – Richard 2012-07-25 14:12:27