1.1、在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字:
注意:如果不允许输入小数点去掉“event.keyCode==46”这种情况
或者:<asp:TextBox ID="TextBox" runat="server" οnkeyup='value=value.replace(/[^d]/g,'') ' onbeforepaste='clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))' MaxLength="15"> </asp:TextBox>
类似方法一:
if(e.KeyChar!=8!Char.IsDigit(e.KeyChar)e.KeyChar!='.'){ e.Handled = true; }
类似方法二:
if ((e.KeyChar < 48 || e.KeyChar > 57) (e.KeyChar != 8) e.KeyChar!='.'){ e.Handled = true; }
类似方法三:
if (!Char.IsNumber(e.KeyChar) !Char.IsPunctuation(e.KeyChar) !Char.IsControl(e.KeyChar)){ e.Handled = true;}
解释:其中e.KeyChar是键盘输入的键对应的字符,IsDigit函数可以判断是否为0到9的数字,Chr(8)
为退格键,当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容也就不会发生变化
如果文本需要输入小数的话,就要能够输入小数点.,而且小数点只能输入一次
//IsNumber:指定字符串中位于指定位置的字符是否属于数字类别
//IsPunctuation:指定字符串中位于指定位置的字符是否属于标点符号类别
//IsControl:指定字符串中位于指定位置的字符是否属于控制字符类别
注意: 这里是在输入时便限制其他类型的字符被写入 TextBox;
就是说你不输入正确或你输入的不是数字我就不让你做其他任何工作!
霸道吧? 呵呵, 如果你不喜欢这种方式, 下面有几种允许用户先随便输入,
然后再判断, 如果不是整数, 我给你来个警告, 告诉你输入类型不正确, 请重新输入!
---不过在我看来, 这种做法有些不道德, 等着你犯错.
类似方法四: 正则表达式.
string regExp = /^[1-9][0-9]*$/;
if(!regExp.test( this.txtLogin.Text))
{
alert(只能是数字!);
this.txtLogin.clear();
return ;
}
类似方法五: 最没有想象力的(原始)判断方法---一个一个一个一个字符判断还需要加上个for循环和n个if:
function isInt(a)
{ var b = "0123456789";
var i;
for (i = 0; i <a.length; i++)
{
var c = a.charAt(i);
if (b.indexOf(c) == -1) return false;
}
return true;
}
1.2、使用规则表达式来验证:
<asp:TextBox ID="UserQQ" runat="server" Columns="18" MaxLength="50" Width="130px"> </asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="UserQQ" ErrorMessage="QQ号只能为数字" validationexpression="/d+"> </asp:RegularExpressionValidator>
1.3、支持多数据类型验证的TextBox: