怎么让TEXTBOX只能输入数字
就是输入别的字符的时候都输入不进去。。
只能输入整数或是小数。。。
应该怎么写。
问题点数:20、回复次数:21Top
1 楼zhtflhs(哼哼)回复于 2006-03-13 13:11:46 得分 3
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
//限制只能输入字母和数字
if(!((e.KeyChar >= 'A' && e.KeyChar <= 'Z') || (e.KeyChar >= 'a' && e.KeyChar <= 'z') || (e.KeyChar >= '0' && e.KeyChar <= '9') ||((int)e.KeyChar == (int)System.Windows.Forms.Keys.Back)))
{
e.Handled = true;
}
}
Top
2 楼zhtflhs(哼哼)回复于 2006-03-13 13:15:35 得分 3
/// <summary>
/// 判断一个字符串是否为数字
/// <font color="blue">访问级别:</font><font color="red">private</font>
/// <font color="blue">创建日期:</font>2005-06-26
/// <font color="blue">最后修改日期:</font>2005-06-26
/// <font color="blue">调用方法:</font>
/// <font color="blue">返回值:bool</font>
/// </summary>
/// <remarks>
/// </remarks>
private bool IsNumber(String strNumber)
{
Regex objNotNumberPattern=new Regex("[^0-9.-]");
Regex objTwoDotPattern=new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern=new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern="^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern="^([-]|[0-9])[0-9]*$";
Regex objNumberPattern =new Regex("(" + strValidRealPattern +")|(" + strValidIntegerPattern + ")");
return !objNotNumberPattern.IsMatch(strNumber) &&
!objTwoDotPattern.IsMatch(strNumber) &&
!objTwoMinusPattern.IsMatch(strNumber) &&
objNumberPattern.IsMatch(strNumber);
}
Top
3 楼SimpleDay(今天你穿内裤了吗?)回复于 2006-03-13 13:17:25 得分 0
请给我个VB例子好吗?
我想只要数字和小数点的。。。。
谢谢Top
4 楼smile9961(good life)回复于 2006-03-13 13:34:17 得分 3
function resetMe(tmp)
客戶端:
{
if(isNaN(txt.value))
{
tmp.value=0
}
}
<input id=txt runat=server type=text onpropertychange="resetMe();">
服務器端:
可根據2樓的方法驗證;或者
Try
Double.Parse(txt.text.trim)
Catch ex As Exception
End Try
Top
5 楼dyfzl()回复于 2006-03-13 13:34:37 得分 3
在2005里很容易,在TOOLBOX里有一个正则表达式验证控件能完成此功能Top
6 楼smile9961(good life)回复于 2006-03-13 13:35:26 得分 3
更正:
客戶端:
function resetMe(tmp)
{
if(isNaN(txt.value))
{
tmp.value=0
}
}
<input id=txt runat=server type=text onpropertychange="resetMe();">
服務器端:
可根據2樓的方法驗證;或者
Try
Double.Parse(txt.text.trim)
Catch ex As Exception
End TryTop
7 楼beiouwolf(beiouwolf)回复于 2006-03-13 13:41:01 得分 3
<input type="text" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\D]/g,''))" id="tMarketPrice" onkeyup="javascript:value=value.replace(/[\D]/g,'')">Top
8 楼lubosun(大白菜)回复于 2006-03-13 13:53:45 得分 2
有正则表达式啊Top
9 楼ypzhenxp(走路看着电线杆就撞美女身上了)回复于 2006-03-13 14:14:29 得分 0
正则表达式输入
^(-?\d+)(\.\d+)?$
如果不知道怎么用正则表达式 ok看下面
Top
10 楼ypzhenxp(走路看着电线杆就撞美女身上了)回复于 2006-03-13 14:24:21 得分 0
step1.添加RegularExpressionValidator控件。
step2.在validationExpress属性里添加以上信息
step3.在controlToValidate属性里假如你想验证的textbox的id
ok搞定。Top
11 楼jwd987654321()回复于 2006-03-13 14:25:38 得分 0
要么用脚本要么用正则表达式Top
12 楼juziE2006(橘子)回复于 2006-03-13 15:07:57 得分 0
用正则表达式Top
13 楼ljhkim6()回复于 2006-03-13 15:27:06 得分 0
要么正则表达式
要么自己写个函数处理
Top
14 楼coley(唉~眼镜又厚了~)回复于 2006-03-13 15:30:14 得分 0
这个还是考虑用js吧
js函数查下isNuNTop
15 楼zhuqingkfv123(竹青)回复于 2006-03-13 15:38:32 得分 0
function ifFloat(str){
if ( ( pos = str.indexOf( "." ) ) != -1 ){
if (str.length==1)
return false;
if ( ( pos = str.indexOf(".", pos + 1) ) != -1 )
return false;
}
else if((str.charAt(0)=="0")&&(str.length > 1)){
return false;
}
for ( var i = 0 ; i < str.length; i ++ ){
if (( str.charAt(i) < "0" || str.charAt(i) > "9" )&&(str.charAt(i)!="."))
return false;
}
return true;
}
可以调用像这样的JS,也可以用添加验证控件,写正则表达式
Top
16 楼itmingong(nous+wisdom+courage)回复于 2006-03-14 09:40:05 得分 0
用正则表达式就OK了Top
17 楼eastjazz(德仔&我是小仔仔 www.dezai.cn)回复于 2006-03-14 11:31:31 得分 0
乍么大家都喜欢搞复杂的?用验证控件就很好用了,还要搞些码子出来。Top
18 楼jimu8130(火箭的未来在哪里?)回复于 2006-03-14 11:57:32 得分 0
验证控件+正则表达式Top
19 楼hhcsb(声波)回复于 2006-03-14 13:54:00 得分 0
RegularExpressionValidator控件,并在里面填写正则表达式,OVERTop
20 楼TheSon(TheSon)回复于 2006-03-14 15:15:20 得分 0
客户端脚本控制:
<SCRIPT Langugage="JavaScript">
attachEvent("onblur",formatIntEx);
function formatIntEx(event){
formatInt(event.srcElement);
}
</SCRIPT>
服务器端么就是 RegularExpressionValidator控件+正则表达式搞定Top
21 楼litao6664(TT)回复于 2006-03-14 19:18:42 得分 0
最简单的可以加个验证控件,校验类型为数字Top




