C# 如何实现文本框只能输入数字
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在TextChanged事件中^[0-9]{1,}$ 正则表达式
Regex r = new Regex("^[0-9]{1,}$");
if(!r.IsMatch(textBox1.Text))
{
Messagebox.Show("请输入数字");
}
private void txtNumber_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar >= '0' && e.KeyChar <= '9')
{
e.Handled = false;
return;
}
e.Handled = true;
}
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
1.用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
判断字符的方法不太好,不好考虑Ctrl+V的情况。
建议用这种:
johnage(湘军) ( ) 信誉:100 2006-08-16 16:34:00 得分: 0
在TextChanged事件中^[0-9]{1,}$ 正则表达式
static private Regex r = new Regex("^[0-9]{1,}$"); //这个可以写成静态的,就不用老是构造
if(!r.IsMatch(textBox1.Text))
{
Messagebox.Show("请输入数字");
}
static private Regex r = new Regex("^[0-9]{1,}$"); //这个可以写成静态的,就不用老是构造
if(!r.IsMatch(textBox1.Text))
{
Messagebox.Show("请输入数字");
}
这个会写进去字符
我把Messagebox.Show("请输入数字");
改成textBox1.Text="";了
TextChanged事件,
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
int curr=this.textBox1.SelectionStart;
System.Text.RegularExpressions.Regex rg=new System.Text.RegularExpressions.Regex("[^0-9]+");
this.textBox1.Text=rg.Replace(this.textBox1.Text,"");
if(this.textBox1.SelectionStart==0)
{
this.textBox1.SelectionStart=0;
}
else
{
this.textBox1.SelectionStart=curr;
}
}