对于KEYPRESS里的正则输入,格式要求为*.xx 保留2位小数
2014-10-16 11:11
330 查看
private void Cells_KeyPress(object sender, KeyPressEventArgs e) //自定义事件
{
if (this.dataGridView1.CurrentCellAddress.X == 2)
{
string aa = @"^\d+$";
string bb = @"^\.{0,1}$";
Regex reg1 = new Regex(aa);
Regex reg2 = new Regex(bb);
if (!reg1.IsMatch(e.KeyChar.ToString()) && !reg2.IsMatch(e.KeyChar.ToString())) e.Handled = true;
string cc = @"^\d+(\.{0,1}\d{0,1})$";//@"^(-?\d+)(\.\d+)?$";
char[] point={'.'};
string[] seperated=CellEdit.Text.Split(point);
if(seperated.Length>1) //取小数点后字符串
{
if (seperated[1].Length >= 2 //.22,小数点后的数字长度超过2
//&& (e.KeyChar >= '0' && e.KeyChar <= '9')//同时又在点后输入数字
&& CellEdit.SelectionLength <= 0 //没有选中当前所输入的数字
&& CellEdit.SelectionStart>=CellEdit.Text.Length-1//光标不在最后
)
cc = @"^\d+(\.{0,1}\d{0,1})$";
else
cc = @"^\d+(\.{0,1}\d{0,2})$";
}
else //万一number没有小数点,置零
cc = @"^\d+(\.{0,1}\d{0,1})$";
Regex reg3 = new Regex(cc);
// Regex reg = new Regex("^\\d*\\.{0,1}\\d{0,2}$");//Regex("^[0-9]{1}([0-9]|[.])$");"^"
if ((!reg3.IsMatch(CellEdit.Text) && CellEdit.Text != "0")|| (e.KeyChar == '.' && CellEdit.Text.Contains('.')))
e.Handled = true;// if (!(e.KeyChar >= '0' && e.KeyChar <= '9')
if (e.KeyChar == '\b') e.Handled = false;
}
}
{
if (this.dataGridView1.CurrentCellAddress.X == 2)
{
string aa = @"^\d+$";
string bb = @"^\.{0,1}$";
Regex reg1 = new Regex(aa);
Regex reg2 = new Regex(bb);
if (!reg1.IsMatch(e.KeyChar.ToString()) && !reg2.IsMatch(e.KeyChar.ToString())) e.Handled = true;
string cc = @"^\d+(\.{0,1}\d{0,1})$";//@"^(-?\d+)(\.\d+)?$";
char[] point={'.'};
string[] seperated=CellEdit.Text.Split(point);
if(seperated.Length>1) //取小数点后字符串
{
if (seperated[1].Length >= 2 //.22,小数点后的数字长度超过2
//&& (e.KeyChar >= '0' && e.KeyChar <= '9')//同时又在点后输入数字
&& CellEdit.SelectionLength <= 0 //没有选中当前所输入的数字
&& CellEdit.SelectionStart>=CellEdit.Text.Length-1//光标不在最后
)
cc = @"^\d+(\.{0,1}\d{0,1})$";
else
cc = @"^\d+(\.{0,1}\d{0,2})$";
}
else //万一number没有小数点,置零
cc = @"^\d+(\.{0,1}\d{0,1})$";
Regex reg3 = new Regex(cc);
// Regex reg = new Regex("^\\d*\\.{0,1}\\d{0,2}$");//Regex("^[0-9]{1}([0-9]|[.])$");"^"
if ((!reg3.IsMatch(CellEdit.Text) && CellEdit.Text != "0")|| (e.KeyChar == '.' && CellEdit.Text.Contains('.')))
e.Handled = true;// if (!(e.KeyChar >= '0' && e.KeyChar <= '9')
if (e.KeyChar == '\b') e.Handled = false;
}
}
相关文章推荐
- 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和,对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数
- 求实数的绝对值。输入数据有多组,每组占一行,每行包含一个实数。对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。
- UITextField只能输入数字以及输入数字和小数点并且小数点后保留2位小数
- 编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
- 正则表达式来判断输入0-100的数字,保留两位小数方法的两种方法
- java格式化金额 java格式数字 保留2位小数
- ASP.NET中服务器控件Button调用javascript代码运用正则表达式验证TextBox中输入的是否为正整数或正小数,符合要求则继续运行服务器端代码功能的实现
- 已知某学生三科考试成绩,试求此学生考试成绩总和及平均分,要求平均分保留2位小数。
- 正则表达式判定保留2位小数的实现代码
- JS正则表达式 验证 输入的是正负小数(保留3位小数)或者只能输入正负整数
- JS限制文本框输入金额,保留2位小数
- 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和,要求精度保留2位小数。
- Android 控制金额输入格式 保留两位小数
- 正则表达式判定保留2位小数
- 数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和.多组数据,要求精度保留2位小数
- JS 使用正则自动纠正输入小数错误格式
- 正则限制输入为数字,且最多输入2位小数 之 新写法
- DevExpress的文本框 只能输入保留2位小数的正数字
- sql 中要求现实数据保留两位小数
- C#正则表达式判断输入日期格式是否正确