1 /// <summary> 2 /// 判斷字符串是否是數字 3 /// </summary> 4 /// <param name="str"></param> 5 /// <param name="nt"></param> 6 /// <returns></returns> 7 /// <summary> 8 public static bool IsNumType(this string str, NumType nt) 9 { 10 string matchString = ""; 11 switch (nt) 12 { 13 case NumType.NonNegativeInt: 14 //非負整數(正整數 + 0) 15 matchString = @"^[1-9]+[0-9]*$|^0$"; 16 break; 17 case NumType.PositiveInt: 18 //正整數 19 matchString = @"^[1-9]+[0-9]*$"; 20 break; 21 case NumType.NonPositiveInt: 22 //非正整數(負整數 + 0) 23 matchString = @"^-[1-9]+[0-9]*$|^0$"; 24 break; 25 case NumType.NegativeInt: 26 //負整數 27 matchString = @"^^-[1-9]+[0-9]*$"; 28 break; 29 case NumType.Int: 30 //整數 31 matchString = @"^-?[1-9]+[0-9]*$|^0$"; 32 break; 33 case NumType.NonNegative: 34 //非負數(正數 + 0) 35 matchString = @"(^(0\.0*[1-9]+[0-9]*$|[1-9]+[0-9]*\.[0-9]*[0-9]$|[1-9]+[0-9]*$)|^0$)"; 36 break; 37 case NumType.Positive: 38 //正數 39 matchString = @"^(0\.0*[1-9]+[0-9]*$|[1-9]+[0-9]*\.[0-9]*[0-9]$|[1-9]+[0-9]*$)"; 40 break; 41 case NumType.NonPositive: 42 //非正數(負數 + 0) 43 matchString = @"(^-(0\.0*[1-9]+[0-9]*$|[1-9]+[0-9]*\.[0-9]*[0-9]$|[1-9]+[0-9]*$)|^0$)"; 44 break; 45 case NumType.Negative: 46 //負數 47 matchString = @"^-(0\.0*[1-9]+[0-9]*$|[1-9]+[0-9]*\.[0-9]*[0-9]$|[1-9]+[0-9]*$)"; 48 break; 49 default: 50 break; 51 } 52 return Regex.IsMatch(str, matchString, RegexOptions.IgnoreCase); 53 }