I am sure everybody has had his/her share of regex woes.

We have a big application with around 30 developers working on a mvc3 web application , and the two fold regex validations (front-end and server side) is becoming a nightmare to maintain.

Is there a way to keep all the regexes in one place ? so that they can be used as attributes for entities and also be used for validations in the controller?

  • Could you maybe copy or generate both from a single source automatically during build? – Péter Török Nov 22 '11 at 12:07
  • could you elaborate a bit more ? – Shekhar Nov 22 '11 at 12:49
  • 1
    My idea was, since it would be awkward to generate / reuse client side code from server side code, or vice versa, maybe it would be simpler to generate both from a third source. You could store the regexes in a plain text file, a DB, ... then generate the client and server side sources during the build from the stored regex data. Since I have no idea how the regexes are contained in your source code currently, I can't be more concrete than this. – Péter Török Nov 22 '11 at 13:21

What are you using for validation now? Generally, the default, built-in DataAnnotations do just what you are describing. Another option is FluentValidation which also works with client-side validation.

In any case this is a solved problem in general.


You could store the regexes in a table in your database, with a name a the key and then the two variants for front-end and back-end use, soemthing like:

regex_name | front_end                       | back end
post_code  |"[a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d"|"[a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d"

Of course, putting this in the database could make things difficult if you need a regex before you're connected to the database (probably won't happen in this case, but you never know) so you could implement a similar idea with a static class that just has a dictionary of names and the text for the regex versions.

Or you could store this in a CSV file and then load it into a cache at application startup. There are many ways to do this, I'm not sure what is the best for your team.

  • My suggestion as well. I've done this with a database as well as in a XML file. – jfrankcarr Nov 22 '11 at 14:45

you are talking about shared regex`s for JavaScript (ECMA) and C# (NET) correct? this is not possible because .NET and ECMA use different flavors, see Regular Expression Flavor Comparison for more info.


You can put the regex strings in your web config and call they dynamically in your page and your code. In this manner the strings will exist in a single location, will be able to be modified with out requiring a recompile, and will be available to your code through out your application.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.