2017-03-08 61 views
-1

我有PIN码=,其中三个下面列出的清单:如果给定的PIN码有一个字符,则返回true;否则失败?

  1. "12 171H01 003"应该返回True
  2. "12 371 04 003"应该返回False
  3. "12 671 C04 029"

所有PIN码有他们之间的空间。其中至少有一个人物。

如果任何PIN码有一个字符,则返回true,否则返回false。

下面的功能不起作用。无论传递给它的PIN码是否有字符,它都会返回false。

任何想法我做错了什么?

Public Function FoundChar(ByVal strPIN As String) As Boolean 

    Dim Pattern As String = "[a-zA-Z]" 
    Dim reg As New Regex(Pattern) 

    Return reg.IsMatch(strPID) 

End Function 
+0

他们都有他们的字符。我假设你的意思是“字母”而不是“字符”。你可以不用'Regex'并使用'strPin.Any(Function(c)Char.IsLetter(c))'。 – jmcilhinney

+1

你的意思是这样的: 尺寸C = '12 171H01 003' 如果strPin.Any(功能(C)Char.IsLetter(C))???? – Tairoc

+0

不,我的意思是摆脱你的方法中的所有代码,只是返回我提供的表达式。 – jmcilhinney

回答

0

你的代码工作正常:

Sub Main 
    Console.WriteLine(FoundChar("12 171H01 003")) 'True 
    Console.WriteLine(FoundChar("12 371 04 003")) 'False 
    Console.WriteLine(FoundChar("12 671 C04 029")) 'True 
End Sub 

Public Function FoundChar(ByVal strPIN As String) As Boolean 

    Dim Pattern As String = "[a-zA-Z]" 
    Dim reg As New Regex(Pattern) 

    Return reg.IsMatch(strPIN) 

End Function 

唯一的区别是在你的代码一个错字 - 你有strPID,而不是strPIN

+0

感谢您的帮助 – Tairoc

相关问题