Regular Expressions in VbScript?

2019-02-15 22:46发布

Does VbScript have a native implementation for Regex? I need to validate e-mail addresses on an old ASP application.

Any pointers would be great.

5条回答
手持菜刀,她持情操
2楼-- · 2019-02-15 23:04

Since the top answer here is in VB6 I thought I'd add one here in VBScript (since that's what the question is asking for):-

Option Explicit

Function GetEmailValidator()

  Set GetEmailValidator = New RegExp

  GetEmailValidator.Pattern = "^((?:[A-Z0-9_%+-]+\.?)+)@((?:[A-Z0-9-]+\.)+[A-Z]{2,4})$"

  GetEmailValidator.IgnoreCase = True

End Function

Dim EmailValidator : Set EmailValidator = GetEmailValidator()

Now some tests:-

Response.Write EmailValidator.Test("") = False
Response.Write EmailValidator.Test(" ") = False
Response.Write EmailValidator.Test("somebody@domain.co.uk") = True
Response.Write EmailValidator.Test("someone@domain.com") = True
Response.Write EmailValidator.Test("some.body@domain.co.uk") = True
Response.Write EmailValidator.Test("broken@domain..co.uk") = False
Response.Write EmailValidator.Test("@oops.co.uk") = False
Response.Write EmailValidator.Test("name") = False
Response.Write EmailValidator.Test("name@uk") = False
Response.Write EmailValidator.Test("name@uk") = False
Response.Write EmailValidator.Test("name@domain.abcde") = False
查看更多
甜甜的少女心
3楼-- · 2019-02-15 23:09

This example is by AlexCuse from LessThanDot

Function ValidEmail(ByVal emailAddress) 

'this function will use regular expressions to check an '
'email address for validity '

'instantiate regex object container, output boolean '
Dim objRegEx, retVal 

'using late binding, vbscript reference is not required '
Set objRegEx = CreateObject("VBScript.RegExp") 

'.pattern -looks for a valid email address '
With objRegEx 
      .Pattern = "^\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$" 
      .IgnoreCase = True 
End With 

retVal = objRegEx.Test(emailAddress) 

'get rid of RegEx object '
Set objRegEx = Nothing 

ValidEmail = retVal 

End Function
查看更多
等我变得足够好
4楼-- · 2019-02-15 23:15
仙女界的扛把子
5楼-- · 2019-02-15 23:17

VBScript has a built-in RegExp object, which is Microsoft's implementation of JavaScript regular expressions. I have an article about the VBScript RegExp object on my website that explains how to use it.

查看更多
不美不萌又怎样
6楼-- · 2019-02-15 23:24

Like other said, yes. I just wanted to put you at the devguru vbscript docs, I find they tend to be the good place to get quick vbscript answers. This is there section on the Regexp object.

查看更多
登录 后发表回答