【发布时间】:2011-04-28 06:39:55
【问题描述】:
如何让文本框只接受数字字符 (0-9) ?如果它包含任何字母或符号,则给出错误消息。
【问题讨论】:
如何让文本框只接受数字字符 (0-9) ?如果它包含任何字母或符号,则给出错误消息。
【问题讨论】:
您可以捕获事件 KeyDown 并检查 e.KeyCode 是否为数字,如果需要,将其丢弃。
您可以尝试的另一件事是使用IsNumeric(txt.Text)。
【讨论】:
这篇MSDN 文章将对您有所帮助:
【讨论】:
您可以使用正则表达式,例如:^(\d{0,11})(.\d{0,2})?$ 这将允许小数点左侧 0-11 位和小数点右侧 0-2 位。
如果你有 Ajax 控件,你可以使用过滤文本框扩展器
<cc1:FilteredTextBoxExtender id="FilteredTextBoxExtender8" runat="server" TargetControlID="YourTextBox" FilterType="Custom,Numbers" ValidChars="." >
</cc1:FilteredTextBoxExtender>
或者你也可以试试 Marco 的方法。
【讨论】:
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="YourTestBox" Display="Dynamic" ErrorMessage="RegularExpressionValidator" ValidationExpression="^(\d{0,11})(.\d{0,2})?$ SetFocusOnError="True""></asp:RegularExpressionValidator> 测试注册。表达式只需将文本添加到文本框并移除文本框上的焦点。应显示错误消息。为了允许用户输入 + 和 - 符号,我认为正则表达式的语法是:^([+-]?\d{0,11})(.\d{0,2})?$ OR ^[+ -]?(\d{0,11})(.\d{0,2})?$.我认为第一个是正确的。
这将只允许数字数据和退格
Keypress事件下
if ((!char.IsNumber(e.KeyChar)) && !(e.KeyChar == (char)Keys.Back))
{
e.Handled = true;
}
【讨论】:
我在这里使用 pincode 文本框名称一个 pin 码和 ID 作为 txtPinCode
你只是写在文档函数开始下的代码之上 让我们编写这段代码并检查一次
$("#").numeric();
谢谢 阿克雷迪
【讨论】:
If Asc(e.KeyChar) <> 13 AndAlso Asc(e.KeyChar) <> 8 AndAlso Not IsNumeric(e.KeyChar) Then
MessageBox.Show("Please enter numbers only")
e.Handled = True
End If
【讨论】: