Asp.net ASP文本框支持带字符的十进制数字。(dot)

Asp.net ASP文本框支持带字符的十进制数字。(dot),asp.net,vb.net,textbox,decimal-point,Asp.net,Vb.net,Textbox,Decimal Point,我有一个ASP页面,页面中有一个文本框。此文本框的类型为Double,后端代码的类型为Decimal 这是文本框 <asp:TableCell> <asp:TextBox ID="txtPremium" runat="server" Width="90px"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvPremi

我有一个ASP页面,页面中有一个文本框。此文本框的类型为Double,后端代码的类型为Decimal

这是文本框

            <asp:TableCell>
                <asp:TextBox ID="txtPremium" runat="server" Width="90px"></asp:TextBox>
                <asp:RequiredFieldValidator ID="rfvPremium" runat="server" ControlToValidate="txtPremium"
                    ErrorMessage="Required" ForeColor="Red" Display="Dynamic" ValidationGroup="Insert"></asp:RequiredFieldValidator>
                <asp:CompareValidator ID="txtPremium_Integer" runat="server" ValidationGroup="Insert"
                    ControlToValidate="txtPremium" Display="Dynamic" ErrorMessage="'Premium' must be decimal"
                    ForeColor="Red" Operator="DataTypeCheck" SetFocusOnError="true" Type="Double" />
            </asp:TableCell>
我不确定我能为文本框接受点做些什么


有什么想法吗?

Hi compare validator用于比较两个字段之间的值,例如密码和匹配密码

如果要验证十进制数,请使用正则表达式验证器和接受十进制数的表达式。将以下表达式中的2替换为允许的最大十进制值^\d+。\d{0,2}

    <asp:RegularExpressionValidator runat="server" ErrorMessage="Decimal Only" ID="txtregpre" ValidationGroup="Insert"
                       ControlToValidate="txtPremium"              
ValidationExpression="^\d+\.\d{0,2}$"></asp:RegularExpressionValidator>

您可以使用正则表达式而不是比较验证,下面是10.0和10,0的示例



您的电脑/ASP主机的语言/地区设置是否使用欧洲数字格式,将
视为数字和小数之间的分隔符,而不是
?哦,我不知道我正在使用客户的计算机。如何检查?可能重复:如果逗号和点都是正确的输入,您可以创建自己的
CustomValidator
来检查十进制数:
€1,95
$1.95
@ValentinSky,它不是重复的,因为OP正在询问验证控件。我已经更新了代码。如果您想允许更改coma表达式,请将其用于逗号^[1-9][\.\d]*(,\d+)?$,我明天会尝试,然后回来。谢谢,很有效。只是一些澄清。你能解释一下这到底是什么意思吗?“^\d+\.\d{0,2}$”它是一个正则表达式d,表示十进制d{0,2}表示十进制到2位,例如1.12,用于进一步读取检查和vb检查中的深度定期排泄(可能是过量)请记住,您的文本将根据正则表达式进行验证,如果它有效,则不会出现错误。您可以验证字符串中的所有模式,如电子邮件、带有特定逗号和小数点的十进制字符串、特定格式的日期等
    <asp:RegularExpressionValidator runat="server" ErrorMessage="Decimal Only" ID="txtregpre" ValidationGroup="Insert"
                       ControlToValidate="txtPremium"              
ValidationExpression="^\d+\.\d{0,2}$"></asp:RegularExpressionValidator>