En el proyecto Web en el que estoy trabajando actualmente se requiere que en un formulario de ingreso de datos se valide el formato de un número decimal. Este número no puede exceder 8 caracteres de la forma “EEEEE.DD”. En otras palabras, la parte entera del número decimal no puede tener más de 5 dígitos y la parte fraccionaria no puede exceder los 2 dígitos.
Por ejemplo: 99999.22 donde 99999 es la parte entera y 22 es la parte fraccionaria.
Para resolver este problema podemos hacer uso de una expresión regular como la que se implementa a continuación:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator
id="RegularExpressionValidator1"
runat="server"
ControlToValidate="TextBox1"
ValidationExpression="^[0-9]{1,5}(\.[0-9]{0,2})?$" ErrorMessage="Número decimal fuera del rango establecido" />
La expression:
^[0-9]{1,5}(\.[0-9]{0,2})?$
Verifica si la parte entera está entre 1 a 5 dígitos y si la parte fraccionaria está entre 0 a 2 dígitos. Algunas pruebas:
