使用 RegEx ,ASP.NET 中可用 RegularExpressionValidator
解决方案 »
- 枚举使用泛型操作
- return string.Format("{0:D3}", i_Temp);这个{0:D3}是什么意思????
- 估计是有史以来最菜的问题了:c#与c#builder版块的区别。
- 另一个关于sqlCommandBuilder的问题
- 在windows应用程序中如何数据绑定控件?
- 一个人用.net做高校成绩管理系统要多久能完成?
- QQ号被人盗了,大家帮忙想想办法
- Discuz!NT实现灌水或者数据库插入[100++分]
- 能讲讲什么叫.net技术,该如何学习啊
- 如何点击窗口关闭后,弹出询问对话框,如果选择否,窗口不退出???
- 在不保存线程的情况下,如何找到线程??
- 经典疑问!!一个程序中,多个用户同时对数据库进行操作时,怎么样避免同时操作时的错误?
主要有两个问题:
1、怎样取到一个字符的ASC码
2、输入非法字符时,文本框没有反应,就是输不进去。主要原因 .NET 的帮助真是不好用,还没有原来的 MSDN 好用
要是还有其他字符,使用switch一一排除。当然要是只有数字,也可以不使用Text控件,使用NumericUpAndDown什么的!!
二》还有就是用JAVASCRIPT写验证函数在客户端验证(网上很多这样的例子)
其中第二种方法比第一种方法的性能好,因为它在浏览器端进行,不用消耗服务器端的资源
试试// 用正则换掉非英文和数字,等同于 [^a-zA-Z_0-9]
textBox1.Text = System.Text.RegularExpressions.Regex.Replace(textBox1.Text,@"\W","")if (textBox1.Text == ""){
MessageBox.Show("Empty Text");
}如果想要规定的字符可以试试用unicode 码替换//只允许 a-h
textBox1.Text = System.Text.RegularExpressions.Regex.Replace(textBox1.Text,@"^[\u0061-\u0068]","")这样就可以做到匹配包括部分中文字在内的条件
textBox1.Text = System.Text.RegularExpressions.Regex.Replace(textBox1.Text,@"[^\u0061-\u0068]","")
{
private const int WM_KEYDOWN = 0x0100;
private const int WM_KEYUP = 0x0101;
private const int WM_CHAR = 0x0102; protected override void WndProc(ref System.Windows.Forms.Message m)
{
switch (m.Msg)
{
case WM_CHAR:
//MessageBox.Show(m.WParam.ToString());
int key=(int)m.WParam;
if ((key>=48 && key<=58) || key==46)
{
base.WndProc(ref m);
} break;
default:
base.WndProc(ref m);
break;
}
}
}
if ((key>=48 && key<=58) || key==46)
{
e.handle=true;//輸入無效
}
esle
{
e.handle=false;//能輸入
}