VB.NET 中是否有 isAlpha 函数
Is there an isAlpha function in VB.NET
我有一个变量来保存 id
Dim empId as String
因此有效 ID 的格式为:
'the first character should be a letter [A-Z]
'the rest of the string are digits e.g M2895 would be a valid id
我想检查每个字符,看看它们是否符合正确的要求 ID
到目前为止,我已经遇到了 isNumeric()
函数。 VB.NET中是否有类似的函数来检查字符是字符串还是字母字符?
您可以使用 RegularExpressions
而不是手动检查字符串的每个字符:
Dim empId as String = "M2895"
If Regex.IsMatch(empId, "^[A-Z]{1}[0-9]+$") Then
Console.WriteLine("Is valid ID")
End If
如果您需要函数 isAlpha
,您也可以使用 RegularExpressions
创建此函数:
Private Function isAlpha(ByVal letterChar As String) As Boolean
Return Regex.IsMatch(letterChar, "^[A-Z]{1}$")
End Function
为了完成,为了也支持爱沙尼亚字母表,您可以使用以下内容:
Dim empId as String = "Š2859"
If Regex.IsMatch(empId, "^[^\W\d_]{1}[0-9]+$") Then
Console.WriteLine("Is valid ID")
End If
您可以使用适用于所有 Unicode 字符的函数
Char.IsLetter Method (String, Int32)
表示指定字符串中指定位置的字符是否属于Unicode字母。
Char.IsDigit Method (Char)
指示指定的 Unicode 字符是否属于十进制数字。
所以你最终得到了这样的验证
Public Function IsValid(id As String)
If Char.IsLetter(id, 0) = False Then
Return False
End If
If id.Skip(1).All(Char.IsDigit) = False Then
Return False
End If
Return True
End Function
这是我的 isAlpha 函数,回答了这个问题的标题:
Public Shared Function isAlpha(ByVal s as String) as Boolean
if s is Nothing then return False
For Each c As Char in s
If not Char.IsLetter(c) then return False
Next
return True
End Function
但是,要回答问题的 body,这是我的 mod @Fabio 的回答:
Public Function isMyAlphaCode(id As String) as Boolean
if id is Nothing then return False
if id.length < 2 then return False
If Char.IsLetter(id, 0) Then
Return False
End If
If id.Skip(1).All(Char.IsDigit) Then
Return False
End If
Return True
End Function
我有一个变量来保存 id
Dim empId as String
因此有效 ID 的格式为:
'the first character should be a letter [A-Z]
'the rest of the string are digits e.g M2895 would be a valid id
我想检查每个字符,看看它们是否符合正确的要求 ID
到目前为止,我已经遇到了 isNumeric()
函数。 VB.NET中是否有类似的函数来检查字符是字符串还是字母字符?
您可以使用 RegularExpressions
而不是手动检查字符串的每个字符:
Dim empId as String = "M2895"
If Regex.IsMatch(empId, "^[A-Z]{1}[0-9]+$") Then
Console.WriteLine("Is valid ID")
End If
如果您需要函数 isAlpha
,您也可以使用 RegularExpressions
创建此函数:
Private Function isAlpha(ByVal letterChar As String) As Boolean
Return Regex.IsMatch(letterChar, "^[A-Z]{1}$")
End Function
为了完成,为了也支持爱沙尼亚字母表,您可以使用以下内容:
Dim empId as String = "Š2859"
If Regex.IsMatch(empId, "^[^\W\d_]{1}[0-9]+$") Then
Console.WriteLine("Is valid ID")
End If
您可以使用适用于所有 Unicode 字符的函数
Char.IsLetter Method (String, Int32)
表示指定字符串中指定位置的字符是否属于Unicode字母。
Char.IsDigit Method (Char)
指示指定的 Unicode 字符是否属于十进制数字。
所以你最终得到了这样的验证
Public Function IsValid(id As String)
If Char.IsLetter(id, 0) = False Then
Return False
End If
If id.Skip(1).All(Char.IsDigit) = False Then
Return False
End If
Return True
End Function
这是我的 isAlpha 函数,回答了这个问题的标题:
Public Shared Function isAlpha(ByVal s as String) as Boolean
if s is Nothing then return False
For Each c As Char in s
If not Char.IsLetter(c) then return False
Next
return True
End Function
但是,要回答问题的 body,这是我的 mod @Fabio 的回答:
Public Function isMyAlphaCode(id As String) as Boolean
if id is Nothing then return False
if id.length < 2 then return False
If Char.IsLetter(id, 0) Then
Return False
End If
If id.Skip(1).All(Char.IsDigit) Then
Return False
End If
Return True
End Function