VB6 Like运算符没有拾取空格字符

时间:2015-10-22 09:30:09

标签: regex vb6

我有一个遗留应用程序,通过传递给VB6的RegEx experssion验证电子邮件地址,然后使用Like运算符进行比较

RegEx表达式仍然允许空格字符包含在我不想要的电子邮件地址中。

下面的代码 - 我希望第一个重新生成True但第二个返回False。我需要对RegEx表达式进行哪些修改?

Sub LikeTest()

    MsgBox "hello@hello.com" Like "[A-Za-z0-9-\.\]*@*[A-Za-z0-9-\.\].*[A-Za-z]"  'returns True

    MsgBox "hello@ hello.com" Like "[A-Za-z0-9-\.\]*@*[A-Za-z0-9-\.\].*[A-Za-z]"  'returns True but should return False

End Sub

1 个答案:

答案 0 :(得分:0)

DIM test
test = LikeTest("hello@hello.com")


Function LikeTest(sEmail)
  RegExpTest = false
  Dim regEx, retVal
  Set regEx = New RegExp

  ' Create regular expression:
   regEx.Pattern ="^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$" 

  ' Set pattern:
  regEx.IgnoreCase = true
  ' Set case sensitivity.
  retVal = regEx.Test(sEmail)
  ' Execute the search test.
  If not retVal Then
    RegExpTest = false
  else
   RegExpTest = true    
  End If
  MsgBox(RegExpTest)

End Function

来源:

http://www.4guysfromrolla.com/aspfaqs/ShowFAQ.asp?FAQID=47