RegularExpressionAttribute - Comment font-il pas sensible à la casse pour la validation côté client?

J'ai une chaîne de caractères que j'utilise pour la validation côté client:

private const String regex = @"^(?:\b(?:\d{5}(?:\s*-\s*\d{5})?|([A-Z]{2})\d{3}(?:\s*-\s*\d{3})?)(?:,\s*)?)+$";

Je utiliser cette corde à mon [RegularExpression(regex, ErrorMessage = "invalid")] attribut.

Je sais que le /i drapeau pour une regex en Javascript est utilisé pour faire de la casse, mais juste en la clouant à la fin de ma regex (c'est à dire @"^....$/i" n'est pas la regex validation échoue complètement, indépendamment de ce qui est entré (valide ou non).

Ce qui me manque?

  • Le problème, c'est que .NET et JS est l'utilisation de différentes saveurs de Regex, donc si nous voulons le même schéma de travail universellement sur le client et le serveur, nous avons à utiliser un sous-ensemble de la syntaxe d'expression régulière qui est sûr en JS et C#. Alternativement, des approches comme Jeremy la solution ci-dessous nous permet d'richement composer et de contrôle des modificateurs dans les deux langues par la ramification de la logique de validation sur le serveur et le client
InformationsquelleAutor Scott Baker | 2010-11-18