验证前2个5位数的数字

时间:2018-05-29 16:30:18

标签: regex vb.net

我想验证一个5位数字。

  1. 最多5位数
  2. 前两位数字在(00-16)或(20-25)等各种范围内 (32-39)
  3. 00789 - 有效
  4. 11569 - 有效
  5. 22698 - 有效
  6. 32567 - 有效
  7. 17895 - 无效
  8. 41578 - 无效
  9. 是否有正则表达式大师可以帮助使用适用于此场景的正则表达式?

    我对正则表达式一无所知。这是较大解决方案的一小部分,其使用正则表达式字符串作为数据验证的遗留代码。一个数字作为参数出现。进行查找以获取正则表达式验证字符串。数字和正则表达式字符串将传递给执行regex.IsMatch的验证程序。

    我的问题是上面的验证都可以用正则表达式编写,如果是这样的话会是什么样子?然后我可以将表达式添加到我的应用程序中的现有正则表达式库中。

1 个答案:

答案 0 :(得分:1)

为何选择正则表达式?首先,您需要一个集合来存储您的范围,例如:

Dim ranges = New List(Of Tuple(Of Int32, Int32))
ranges.Add(Tuple.Create(0, 16))
ranges.Add(Tuple.Create(20, 25))
ranges.Add(Tuple.Create(32, 39))

支票本身很简单:

Dim firstTwo = text.TrimStart("0"c).Substring(0, 2)
Dim number As Int32
Dim isValid = Int32.TryParse(firstTwo, number) AndAlso 
              ranges.Any(Function(t) number >= t.Item1 AndAlso number <= t.Item2)