VbScript中的正则表达式?
答
这个例子是AlexCuse从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._%+-][email protected][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
答
VBScript有一个内置的RegExp对象,它是Microsoft的JavaScript正则表达式的实现。我的网站上有一个article about the VBScript RegExp object,它解释了如何使用它。
答
由于上面的答案这里是VB6我想我会在VBScript中添加一个这里(因为那是什么的问题是要求): -
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()
现在一些测试: -
Response.Write EmailValidator.Test("") = False
Response.Write EmailValidator.Test(" ") = False
Response.Write EmailValidator.Test("[email protected]") = True
Response.Write EmailValidator.Test("[email protected]") = True
Response.Write EmailValidator.Test("[email protected]") = True
Response.Write EmailValidator.Test("[email protected]") = False
Response.Write EmailValidator.Test("@oops.co.uk") = False
Response.Write EmailValidator.Test("name") = False
Response.Write EmailValidator.Test("[email protected]") = False
Response.Write EmailValidator.Test("[email protected]") = False
Response.Write EmailValidator.Test("[email protected]") = False
这是一个糟糕的匹配模式,但很容易修复。 – FlySwat 2008-12-11 22:51:50
哈哈我很久没有使用过这段代码了。但你会介意分享你如何解决匹配模式?我不太经常使用正则表达式,但总是在寻找提示。 – AlexCuse 2008-12-12 01:07:38