在VB中强制执行约束

时间:2013-12-07 16:34:54

标签: vb.net visual-studio-2010 visual-studio

最后一个问题。

如果我想强制执行约束,例如我只想要信件,或者我只想要数字。

我该怎么做?

Public Property HealthCardNumber() As String
    Get
        Return _HealthCardNumber
    End Get
    Set(ByVal value As String)
        _HealthCardNumber = value
    End Set
End Property

谢谢

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式执行此操作:

Public Property HealthCardNumber() As String
  Get
    Return _HealthCardNumber
  End Get
  Set(ByVal value As String)
    Set validatorRegex = CreateObject("VBScript.RegExp")
    validatorRegex.IgnoreCase = True
    validatorRegex.Pattern = "^[a-z0-9]+$"
    validatorRegex.Global = True

    If validatorRegex.Test(value) Then
       _HealthCardNumber = value
    Else
       ' throw invalid value exception, or do whatever you think is appropriate
    End If
  End Set
End Property

上面的示例将匹配字母和/或数字的任意组合的字符串。

如果您只想要字母,可以使用此正则表达式:^[a-z]+$

如果您只想要号码,可以使用此正则表达式:^[0-9]+$

对于其他更具体的案例,您可以查找有关正则表达式和字符类的信息。