真正的正数、负数、整数等正则表达式,网上好多都是错的

 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     }

 

转载于:https://www.cnblogs.com/swtool/p/4525075.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值