我正在尝试使用Like运算符来确保String与Pattern匹配。我知道使用正则表达式(正则表达式)更容易,但我只想说我必须使用“like”运算符。 我该怎么办呢?任何帮助将不胜感激。
密码文本框至少应包含一个字符,一个数字和其中一个符号#%& *。
让我们保持简单,顺便说一句,这就是我设法带来电子邮件模式的程度。
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
If TextBox2.Text Like "*[@]*?.[a-z]*" Then
MsgBox("OK")
Else
MsgBox("NO GOOD")
End If
End Sub
答案 0 :(得分:2)
密码文本框至少应包含一个字符,一个数字和其中一个符号#%& *。
使用LIKE
运算符解决此问题的唯一方法是结合多个LIKE
运算,因为没有OR或lookbhead / lookbehind的概念,如正则表达式。
以下是一个例子:
Dim strings = {"das6723&", "das6723", "#das6723",
"fsdfdfs", "f74/&g3", "232323",
"ABC37&28", "J**1", "j87#"}
For Each s in strings
Console.Write(s)
If s Like "*#*" AndAlso _
s Like "*[#%&*]*" AndAlso _
s Like "*[a-zA-Z]*" Then
Console.WriteLine(" : valid")
Else
Console.WriteLine(" : not valid")
End If
Next
答案 1 :(得分:1)
密码文本框至少应包含一个字符,一个数字 以及其中一个符号#%& *。
根据您的要求,您既不需要正则表达式,也不需要Like
- 运算符,这样也更有效率和可读性:
Dim isValid = text.Length > 0 AndAlso
text.Any(AddressOf Char.IsDigit) AndAlso
text.Any(AddressOf "#%&".Contains)
答案 2 :(得分:-1)
你应该寻找正则表达式。以下是MSDN中用于在VB中查找电子邮件地址的示例。
Function ValidateEmail(ByVal email As String) As Boolean
Dim emailRegex As New System.Text.RegularExpressions.Regex(
"^(?<user>[^@]+)@(?<host>.+)$")
Dim emailMatch As System.Text.RegularExpressions.Match =
emailRegex.Match(email)
Return emailMatch.Success
End Function
https://msdn.microsoft.com/en-us/library/vstudio/txk0hsah%28v=vs.100%29.aspx
有关VB中正则表达式的更多信息:http://support2.microsoft.com/kb/818802