比如:textBox中输入: 0.23,0.56,26,999,1268,-0.26,只可以输入这两种数据: 数字+逗号(英文半角,)求::::正则表达式
2 回答
慕容森
TA贡献1853条经验 获得超18个赞
建议先匹配是否符合数字,小数点,逗号 ^[- 0 - 9 ,\.]*$ //表达式 否→跳出, 是→继续, 再用分段函数以逗号分割到数组中。 对数组每个元素进行数字类型的匹配 ^-?\d+(\.\d+)?$ //表达式 只要一个元素不匹配,则跳出。 这样完成文本的验证。 |
using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Text.RegularExpressions; public class Form1 { private void TextBox1_KeyPress( object sender, System.Windows.Forms.KeyPressEventArgs e) { if (Strings.Asc(e.KeyChar) == 13) { if (CheckTxt(TextBox1.Text)) { Interaction.MsgBox( "通过检验!" ); } else { Interaction.MsgBox( "输入格式错误,请检查!" ); } } } private bool CheckTxt( string i) { Regex regAll = new Regex( "^[-0-9,\\.]*$" ); if (regAll.IsMatch(i)) { string [] sNum = Strings.Split(i, "," ); Regex regNum = new Regex( "^-?\\d+(\\.\\d+)?$" ); foreach ( string n in sNum) { if (! string .IsNullOrEmpty(n)) { if (!regNum.IsMatch(n)) { return false ; } } } } else { return false ; } return true ; } } |
- 2 回答
- 0 关注
- 346 浏览
添加回答
举报
0/150
提交
取消