2008-12-11 3 views
1

VbScript에 Regex의 기본 구현이 있습니까? 이전 ASP 응용 프로그램에서 전자 메일 주소의 유효성을 검사해야합니다.VbScript의 정규 표현식?

모든 포인터가 좋을 것입니다.

답변

8

이 예제는 확실하지, 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 
+1

그게 엉성한 매치 패턴이지만, 쉽게 고쳐졌습니다. – FlySwat

+0

하하 나는 그 코드를 꽤 오래 사용하지 않았다. 하지만 경기 패턴을 수정하는 방법을 공유 하시겠습니까? 정규 표현식을 너무 자주 사용하지는 않지만 항상 팁을 찾고 있습니다. – AlexCuse

+0

이것은 "[email protected]"이라는 불법적 인 "[email protected]"는 허용하지 않으며 IDN은 허용하지 않습니다. "mailtest @ 예 え. 테스토"(또는 punny-code로 변환 : "[email protected]") – some

0

다른 말로 표현하면 그렇다. 난 그냥 devguru vbscript 워드 프로세서에 넣어 싶었어, 나는 그들이 빠른 vbscript 답변을 얻을 수있는 좋은 장소 경향이 찾으십시오. 이 부분은 Regexp 개체의 섹션입니다.

0

VBScript에는 Microsoft의 JavaScript 정규식 구현 인 RegExp 개체가 기본 제공되어 있습니다. 내 웹 사이트에 article about the VBScript RegExp object이 있는데 사용 방법이 설명되어 있습니다. 상단 대답은 여기 VB6에 있기 때문에

19

나는 (그 문제가 요구하고 무엇 때문에) 내가 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 
+2

+1 - VBScript, 깨끗하고 간결하며 올바른 ... – Dscoduc

+1

약간의 이유 때문에 약간 느려졌습니다 (IE 9).^[A-Z0-9_ % + - \.] + @ [A-Z0-9 - \.] + \. [AZ] {2,10} $ – ren