对于KEYPRESS里的正则输入,格式要求为*.xx 保留2位小数

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})$"; else cc = @"^\d+(\.{0,2})$"; } else //万一number没有小数点,置零 cc = @"^\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; } }

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...