真正的正數、負數、整數等正則表達式,網上好多都是錯的


 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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM