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 验证文本框中输入的文本——根据文本类型进行验证
|
/// <summary>
|
/// 验证文本框中输入的文本——根据文本类型进行验证
|
/// </summary>
|
/// <param name="tbp">文本框控件对象</param>
|
/// <param name="TxtType">文本格式类型</param>
|
/// <param name="length">限制长度</param>
|
/// <returns>true:验证通过;false:不通过</returns>
|
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
|
}
|
}
|