Asp.net ASP文本框支持带字符的十进制数字。(dot)
我有一个ASP页面,页面中有一个文本框。此文本框的类型为Double,后端代码的类型为Decimal 这是文本框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: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>