Manutenzione di Regex in un'applicazione .net

2

Sono sicuro che tutti hanno avuto la sua parte di problemi regex.

Abbiamo una grande applicazione con circa 30 sviluppatori che lavorano su un'applicazione web mvc3, e le due conferme regex (front-end e lato server) stanno diventando un incubo da mantenere.

C'è un modo per mantenere tutte le regex in un posto? in modo che possano essere utilizzati come attributi per le entità e anche essere utilizzati per le convalide nel controller?

    
posta Shekhar 22.11.2011 - 13:01
fonte

4 risposte

1

Che cosa stai usando per la convalida adesso? In genere, le annessioni dati predefinite e predefinite fanno esattamente ciò che stai descrivendo. Un'altra opzione è FluentValidation che funziona anche con la validazione lato client.

In ogni caso questo è un problema risolto in generale.

    
risposta data 22.11.2011 - 15:08
fonte
3

Potresti memorizzare le espressioni regolari in una tabella nel tuo database, con un nome e la chiave e quindi le due varianti per l'uso front-end e back-end, simile a:

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"

Ovviamente, inserire questo nel database potrebbe rendere le cose difficili se hai bisogno di un'espressione regolare prima di essere connesso al database (probabilmente non succederà in questo caso, ma non lo saprai mai) in modo da poter implementare un'idea simile con una classe statica che ha solo un dizionario di nomi e il testo per le versioni regex.

Oppure puoi archiviarlo in un file CSV e caricarlo in una cache all'avvio dell'applicazione. Ci sono molti modi per farlo, non sono sicuro di quale sia il migliore per il tuo team.

    
risposta data 22.11.2011 - 15:39
fonte
0

stai parlando di regex condivise per JavaScript (ECMA) e C # (NET) corrette? questo non è possibile perché .NET ed ECMA usano sapori diversi, vedi Confronto degli aromi delle espressioni regolari per maggiori informazioni.

    
risposta data 22.11.2011 - 15:16
fonte
0

Puoi inserire le stringhe regex nella tua configurazione web e chiamarle dinamicamente nella tua pagina e nel tuo codice. In questo modo le stringhe esisteranno in una singola posizione, potranno essere modificate senza richiedere una ricompilazione e saranno disponibili per il codice attraverso la tua applicazione.

    
risposta data 22.11.2011 - 15:53
fonte

Leggi altre domande sui tag