可能重复:
如何确保文本框是字母数字但没有前导数字?
在我的应用程序中,我有那个用户无法输入数字的文本框有什么解决方案谢谢你
有很多方法可以解决您的问题
1)您可以将验证器分配给文本框并使用仅限数字的验证器。
2)您可以在 textchanged 中触发您自己的函数并通过使用正则表达式或手动检查字符串是否包含数字来捕获文本。
3)你可以试试这个,做一个javscript函数
function fncInputNumericValuesOnly(x)
{
var txt = document.getElementById(x).value;
if(txt.length > 1)
{
txt = txt.substr(0,1);
if(!((txt >= 'a' && txt <= 'z') || (txt >= 'A' && txt <= 'Z')))
event.returnValue = false;
}
}
并在您的 aspx 页面的标记中有文本框引用这样的函数
<asp:TextBox id="txtQty" runat="server" onkeypress= "fncInputNumericValuesOnly(this.id)"/>
希望这可以帮助。
========更新的代码使其接受第一个字母作为字符,其余为字母数字=======
由于您只想在第一个字符中强制使用字母,因此您只需要检查第一个字符,因为您允许在所有其他位置使用字母数字,因此您不需要检查它们。(它也允许在字母数字中使用符号)。
我相信你这样做是为了密码检查,如果你分配一个正则表达式验证器会更整洁,这会导致在密码框失去焦点时发生正则表达式验证。
什么编程语言?在delphi中:添加一个OnKeyPress事件添加代码
if (( Key >= '0') and(Key <= '9')) then Key := #0;
到这个事件。
这是关于创建数字文本框的MSDN和CodeProject文章
将 RegularExpressionValidator 添加到页面。将 ControlToValidate 设置为 TextBox 的 ID。并使用“[^0-9]. ”或“[a-zA-Z][a-zA-Z0-9] ”的ValidationExpression。第一个不允许数字作为第一个字符,但接受像“%%”这样的输入。第二个需要一个首字母,然后是零个或多个字母(大写和小写)和/或数字。