using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions; using System.Windows.Controls; namespace XHandler.Class { public class VerificationTextBox { #region 验证文本框中输入的文本——根据文本类型进行验证 /// /// 验证文本框中输入的文本——根据文本类型进行验证 /// /// 文本框控件对象 /// 文本格式类型 /// 限制长度 /// true:验证通过;false:不通过 public bool VerificateTextBox(TextBox tbp, int TxtType, int length = 0) { bool isCorrect = false; Regex rg; switch (TxtType) { case 1://长度验证 if (tbp.Text.Length >= length) { isCorrect = false; } else { isCorrect = true; } break; case 2://0-200验证 rg = new Regex(@"^(0|([1-9][0-9]*))+(\.[0-9]{1,2})?$");//"^(([1]{0,1})+([0-9]{1,2})(.[0-9]{2})?)|200$");//"^(\d{1,2}|1\d{2}|200|0)$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { //继续判断是否在0-200范围闭区间 if (Convert.ToDouble(tbp.Text) >= 0.00d && Convert.ToDouble(tbp.Text) <= 200.00d) { isCorrect = true; } else { isCorrect = false; } } break; case 3://-100-100 rg = new Regex(@"^(([-]?[1-9][0-9]?(\.\d{1,2})?)|([-]0(\.\d{1,2}))|^(0(\.\d{1,2})?|100(\.[0]{1,2})?|([-]100(\.[0]{1,2})?))$");//"^([-]{0,1}\d{0,2}[0]{0,1})$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; case 4://0-1000000 rg = new Regex(@"^((0(.\d{1,2})?)|([1-9]\d{0,5}(.\d{1,2})?|0|1000000))$");//"^([1-9]\d{0,5}|0|1000000)$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; case 5://0-20 行 rg = new Regex(@"^(0|[1-9]|1[0-9]|2[0])$");//@"^(([1]?\\d)|20)$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; case 6://0-30 列 rg = new Regex(@"^(0|[12][0-9]|30|[1-9])$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; case 7://0-100 rg = new Regex(@"^(\d|[1-9]\d|100)$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; case 8://0-1000 rg = new Regex(@"^(0|[1-9][0-9]{0,2}|1000)$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; case 9://0和正整数 rg = new Regex(@"^[0-9]*$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; case 10://文件名称(只支持英文)正则表达式 rg = new Regex(@"^[\\w-\\+\\.\\s]*[\\w]+[-\\+\\.\\s]*$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; case 11: rg = new Regex(@"^([0-9]\d{0,2}|1000)(\.\d{1})?$"); if (!rg.IsMatch(tbp.Text)) { isCorrect = false; } else { isCorrect = true; } break; default: break; } return isCorrect; } #endregion } }