【发布时间】:2008-12-04 07:05:47
【问题描述】:
我想初步检查输入的字符串是否类似于Vehicle Identification Number (VIN)。我知道它由 17 个字母和数字组成,但是 VIN 中不允许有字母 I、O 和 Q,所以我使用了这个正则表达式:
^[0-9A-Z-[IOQ]]{17}$
现在,如果我使用 RegularExpressionValidator 检查类似 1G1FP22PXS2100001 的字符串,它会失败,但使用此 OnServerValidate 事件处理程序的 CustomValidator
Regex r = new Regex("^[0-9A-Z-[IOQ]]{17}$");
args.IsValid = r.IsMatch(TextBox1.Text);
效果很好。
实验表明 RegularExpressionValidator 不支持 Character Class Subtraction,但 Regex 类支持。
现在我很感兴趣,为什么这两个 .NET 类使用不同的正则表达式风格?它在某处有记录吗?
【问题讨论】:
-
我只是将链接直接放在我的答案中,而不是在 cmets 中“隐藏它们”。
标签: .net asp.net regex validation