实现:C#窗体中的文本框只能输入中文汉字,其他输入无效。问:正则表达式怎么用? 分不多,谢谢朋友帮忙!

我一以前没用过正则表达式,再加上天资愚钝,所以试了半天还是没弄出来。。。中文的正则表达式为^[\u4e00-\u9fa5]$,希望路过的朋友留下的你看法,越详细越好。再次... 我一以前没用过正则表达式,再加上天资愚钝,所以试了半天还是没弄出来。。。中文的正则表达式为^[\u4e00-\u9fa5]$,希望路过的朋友留下的你看法,越详细越好。再次谢谢大家! 展开
 我来答
qiao_liu
2012-05-11 · TA获得超过422个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:244万
展开全部
给窗体的文本框加KeyPress事件(如以下textBox1_KeyPress)
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
Regex rg = new Regex("^[\u4e00-\u9fa5]$");
if (!rg.IsMatch(e.KeyChar.ToString()))
{
e.Handled = true;
}
}

测试过了,只能输入汉字,如果输入别的,没有反应。
以上若还有疑问,可以Hi我。
追问
首先非常感谢你!你所说的方法的确实现了文本框只有输入中文汉字才有效,但还是存在一点问题,那就是键盘上的Backspace键也失效了。我百度了并未发现Backspace有正则表达式,不知道这个问题如何处理。再次谢谢你的回答。
追答
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
Regex rg = new Regex("^[\u4e00-\u9fa5]$");
if (!rg.IsMatch(e.KeyChar.ToString()) && e.KeyChar != '\b') //'\b'是退格键
{
e.Handled = true;
}
}
或者
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
Regex rg = new Regex("^[\u4e00-\u9fa5\b]$"); //\b是退格键
if (!rg.IsMatch(e.KeyChar.ToString()))
{
e.Handled = true;
}
}

已经测试通过,以上,若还有疑问,可以Hi我。
qiangshaee
2012-05-11 · TA获得超过267个赞
知道小有建树答主
回答量:532
采纳率:0%
帮助的人:142万
展开全部
var str="***" //文本框中的文本
var patt=@"^[\u4e00-\u9fa5]+$" //这是要匹配的模式
var r=new Regex(patt);
var pasFlag=r.IsMatch(str); //true 标识匹配规定格式,false 不匹配
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式