C#如何在textbox中只输入数字并指定位数

是windows应用程序

使用RegularExpressionValidator控件,工具箱就有。
<div><asp:RegularExpressionValidator ID="RegularExpressionValidator1" ValidationExpression="[0-9]{4,8}" runat="server" ErrorMessage="输入长度为(4 ~ 8)位的数字!" Display="Dynamic" ControlToValidate="TextBox1"></asp:RegularExpressionValidator></div>
ControlToValidate="TextBox1"就是指你要控制的textbox的ID,ValidationExpression="[0-9]{4,8}"就是指你可以输入4--8位数字。此外还可以指定其他内容,譬如:ValidationExpression="[a-zA-Z0-9]{6,18}"是指可以输入长度为 (4 ~ 8) 位的英文字母或数字。这里面用到的都是“正则表达式”,感兴趣的话可以在网上搜一下。

那么你可以引入下面的:
using System.Text.RegularExpressions;
public static bool Validate(string regexString,string validateString)
{
Regex regex = new Regex(regexString);
return regex.IsMatch(validateString.Trim());
}
bool numOne=Validate("^[0-9]*$",TextBox1.Text);
限制输入数字:^[0-9]*$
限制输入n位的数字:^\d{n}$
限制输入至少n位数字:^\d{n,}$
限制输入m-n位的数字:^\d{m,n}$
限制输入零和非零开头的数字:^(0|[1-9][0-9]*)$
限制输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
限制输入有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
限制输入非零的正整数:^\+?[1-9][0-9]*$
限制输入非零的负整数:^\-[1-9][0-9]*$
限制输入非负整数(正整数 + 0) ^\d+$
限制输入非正整数(负整数 + 0) ^((-\d+)|(0+))$
限制输入长度为3的字符:^.{3}$
还可以限制如下类型:
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?$

参考资料:http://msdn.microsoft.com/zh-cn/library/ms972966.aspx

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-11
textbox控件的MaxLength属性用来指定输入的长度
然后可以在它的key_press事件中来限定输入数字,退格键,小数点

/// <summary>
/// 文本框输入限制,只能输入数字、退格键、和小数点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txt_shouRu_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar))
{
e.Handled = true;
}
else if (Char.IsPunctuation(e.KeyChar))
{
if (e.KeyChar == '.')
{
if (((TextBox)sender).Text.LastIndexOf('.') != -1)
{
e.Handled = true;
}
}
else
{
e.Handled = true;
}
}
}本回答被提问者和网友采纳
第2个回答  2010-10-17
<script type="text/javascript">

function limitInput(elem,type)
{
var str = elem.value;
switch(type){
case ""://文本
elem.value = str.replace(/\"/g,"“").replace(/\'/g,"’").replace(/\%/g,"%");
break;
case "letter"://字母、数字
elem.value = str.replace(/\W/g,"");
break;
case "number"://0-9数值编码
elem.value = str.replace(/[^0-9]/g,"");
break;
case "NaN"://数值
if(isNaN(str))elem.value='';
break;
case "Int"://整形
str = str.substring(0,1).replace(/[^1-9]/g,"")+str.substring(1);
elem.value = str.replace(/[^0-9]/g,"");
break;
case "Tel"://传真、电话、手机

break;
}
}
</script>

调用的时候:
1:只能输入整数
<asp:TextBox ID="TextBox1" runat="server" onkeyup="limitInput(this,'Int')"></asp:TextBox>
2:只能输入带小数点的数字
<asp:TextBox ID="TextBox1" runat="server" onkeyup="limitInput(this,'NaN')"></asp:TextBox>

其他的例子 自己看看js代码就能看明白了。
相似回答