日期:2014-05-18 浏览次数:21235 次
code binge Regex =new Regex([^\d]]; if Regex.Macth ture insert samecode here end if end code
------解决方案--------------------
用正则表达式判断,必须是数值才合法
------解决方案--------------------
int money;
if(double.TryParse(textbox.Text,out money))
//合法
else
//不合法
------解决方案--------------------
1楼的正则并不准确
应该用Regex reg=new Regex(@"\d+(\.\d+)?");
不过我还是建议你用3楼的方法
------解决方案--------------------
如果频繁使用这个逻辑,而且需要很好的代码体现,可以考虑扩展方法或属性
扩展后的使用Demo:
bool xxx= this.textbox.输入的money类型数据的合法性;
扩展方法或属性:查阅MSDN,应该是3.0里引入的特性
------解决方案--------------------
Regex.IsMatch(textBox1.Text, @"-?(\d+)(.\d+)?");
------解决方案--------------------
一般情况下 如果不用自带的函数的话 我喜欢自己写一个判断的方法
下面这个就是我按照你的情况来写的
public int isMoney(string str) { //由于money里面可能存在小数点 所以还得判断 “点” if (str[0] == '.') {//若第一个就是小数点 直接返回 return -1; } bool isReturn = true;//用于判断字符串里面能有一个点 for (int i = 1; i < str.Length; i++) {//这个字符进行比较 //若这个字符不在0到9之间 判断一下他是否为“点” if (str[i] < Convert.ToChar('0') || str[i] > Convert.ToChar('9')) { if (str[i] == '.' && isReturn) { isReturn = false;//如果是“点”则关闭下一次的判断 因为没见过有两个小数点的数 } else { return 0;//否则直接返回 } } } return 1; //循环做完了都还没有发现不符合规定的 则表示有效数据 }