Convalidare una data tramite un'espressione regolare con ASP.NET 2.0

di Riccardo Golia, in ASP.NET 2.0, Validator Controls,

Uno dei problemi principali nella costruzione dell'interfaccia utente è il controllo del formato dei dati immessi dall'utente. Per questo motivo l'uso dei controlli di validazione si rivela di fondamentale importanza per verificare che i valori immessi siano corretti e, in taluni casi, non soltanto da un punto di vista sintattico.

Per verificare il formato di una data inserita tramite una casella di testo, è importante non solo verificare che il dato immesso sia composto da giorno, mese e anno e formattato nel modo corretto, ma anche che la data risultante sia effettivamente una data esistente, considerando gli anni bisestili e i mesi in cui il numero dei giorni è minore, a seconda dei casi. Per eseguire la validazione è possibile utilizzare direttamente un'espressione regolare e associarla tramite un RegularExpressionValidator al controllo di input.

Esempio: la regex utilizzata dal controllo di validazione accetta le date nel formato gg/mm/aaaa. Accetta "18/08/2005", non accetta "31/02/2006".

<asp:TextBox ID="DateTextBox" runat="server" />
<asp:RegularExpressionValidator ID="DateRegexValidator" runat="server" ControlToValidate="DateTextBox" ValidationExpression="(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9][0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9][13579][26])))" />

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi