2017-03-06 121 views
0

我想验证xxxxxxxxxV这个数字。我使用这个代码。它不起作用。如何检查网卡是否有效?

Public Function validateNIC(nicnumber) As Boolean 
    Dim nic As New Regex("/^[0-9]{9}[vVxX]$/") 
    If nic.IsMatch(nicnumber) Then 
     Return True 
    Else 
     Return False 
    End If 
End Function 
+0

什么是“NIC”? – Dai

+0

@戴:似乎是在斯里兰卡使用的:https://en.m.wikipedia.org/wiki/National_identity_card_(Sri_Lanka) –

+0

是的!它用在斯里兰卡 – sanjeewa

回答

2

.NET中的正则表达式不应该被斜杠包围。删除它们,它应该工作。

Dim nic As New Regex("^[0-9]{9}[vVxX]$") 
+0

它的作品!!!!!谢谢 !!!!!! – sanjeewa

2
  • .NET正则表达式不使用/作为分隔符。你直接将它们表达为字符串。
  • If ... Return语法冗长,可以简化
  • 可以缓存在静态(Shared)领域的Regex实例获得更好的性能,还可以指定RegexOptions.Compiled如果您正则表达式经常评估
  • 您应符合.NET命名约定和指定类型为nicnumber参数

Private Shared nicRegex As New Regex("^[0-9]{9}[vVxX]$", RegexOptions.Compiled) 

Public Shared Function IsValidNicNumber(nicNumber As String) As Boolean 

    Return nicRegex.IsMatch(nicNumber) 

End Function 
+0

这也是工作!!!!!!!谢谢 !! – sanjeewa