Ich möchte vorläufige Überprüfung tun, wenn eingegebene Zeichenfolge wie aussieht. Ich weiß, was es besteht aus 17 Buchstaben und Ziffern, sondern Buchstaben I, O und Q nicht innerhalb VIN erlaubt, so dass ich mit diesem regulären Ausdruck:Verwendet RegularExpressionValidator einen anderen Geschmack als Regex?
^[0-9A-Z-[IOQ]]{17}$
Nun, wenn ich eine Zeichenfolge wie 1G1FP22PXS2100001 mit RegularExpressionValidator überprüfen Sie es nicht , aber CustomValidator mit dieser OnServerValidate-Ereignisbehandlungsroutine
Regex r = new Regex("^[0-9A-Z-[IOQ]]{17}$");
args.IsValid = r.IsMatch(TextBox1.Text);
funktioniert gut.
Experimente zeigen, was RegularExpressionValidator Character Class Subtraction nicht unterstützt, aber Regex Klasse tut.
Jetzt bin ich interessiert, warum diese beiden .NET-Klassen verschiedene Regex-Aromen verwenden? Ist das irgendwo dokumentiert?
Ich habe die Links direkt in meine Antwort eingefügt, anstatt sie in den Kommentaren zu verstecken. – VonC