如果輸入的字符串看起來像Vehicle Identification Number (VIN),我想進行初步檢查。我知道它是由17個字母和數字,但字母I,O和Q不允許內部VIN,所以我用這個正則表達式:RegularExpressionValidator使用除Regex之外的其他味道嗎?
^[0-9A-Z-[IOQ]]{17}$
現在,如果我檢查字符串像1G1FP22PXS2100001用的RegularExpressionValidator失敗,但帶有此OnServerValidate事件處理程序的CustomValidator
Regex r = new Regex("^[0-9A-Z-[IOQ]]{17}$");
args.IsValid = r.IsMatch(TextBox1.Text);
很好。
實驗顯示RegularExpressionValidator不支持Character Class Subtraction,但是Regex類沒有。
現在我感興趣爲什麼這兩個.NET類使用不同的正則表達式?它是否有文件記錄?
我只是把鏈接直接放在我的答案中,而不是「隱藏它們」在評論中。 – VonC 2008-12-04 08:52:31