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
}
}