我想在textBox的只能输入字母,数字,下划线。能否用一个正则表达式来检验textBox有其它字符输入
希望各位大虾多多指教!!!
希望各位大虾多多指教!!!
解决方案 »
- 大侠请进,3D旅游环境模拟系统,100分献上。。。
- winform中有没Web中像repeater这样的控件?
- 为什么获取不了选中的值呢???
- 如何在数据库更新的时候通知前台程序???
- 为什么GDI+不支持SetRop2的功能?参与者有分。
- OOP的基础问题
- C# Socket编程 局域网与外网客户端和服务器端反序列化问题
- 高手请进:如何用 gdi+ 实现 winform 类似任务管理器中的cpu占有率图或者内存使用率图,多谢了,向你致敬
- c# 调用Matlab组件检索 COM 类工厂中 CLSID 为 {56316DA6-9A52-4025-A23A-D5DDC98B2968} 的组件时失败,原
- 如何“显示数据-〉打印或保存为其他文件”比较简单?
- 怎样把多个文件打成一个包,也可把这个包还原成多个文件
- 请教ODBC操作EXCEL的小问题。
为什么我运行总是true的
//检验文本框是否有非法字符
if(Regex.IsMatch(tb_name.Text,@"\w*"))
{
errorProvider1.SetError(tb_name,"只能输入字母,数字,下划线"); tb_name.SelectAll();
tb_name.Focus();
} 我输入###跟www一样,结果多是true的
{
string s=e.KeyChar.ToString();
if(s.Length>0)
{
string reg=@"[^\w^_]+";
Match yyy=Regex.Match(s,reg);
if(yyy.ToString()!="")
{
MessageBox.Show("error");
e.Handled=true;
}
}
}
查MSDN,对Regex.IsMatch的解释是:
“指示 Regex 构造函数中指定的正则表达式在输入字符串中是否找到匹配项。”也就是说,是能否找到一个匹配项,而不是匹配全部,只有你要求他必须以串首开始,串尾结束,那效果上也就是“匹配全部”了。原来的@"\w*"由于包含“*”,表示0个或多个,所以,总是匹配。