Регулярные выражения в VbScript? - PullRequest
1 голос
/ 12 декабря 2008

Есть ли в VbScript встроенная реализация для Regex? Мне нужно проверить адреса электронной почты в старом приложении ASP.

Любые указатели были бы великолепны.

Ответы [ 5 ]

19 голосов
/ 18 декабря 2008

Так как верхний ответ здесь находится в 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("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
8 голосов
/ 12 декабря 2008

Этот пример предоставлен 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._%+-]+@[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 голос
/ 12 декабря 2008
0 голосов
/ 12 декабря 2008

VBScript имеет встроенный объект RegExp, который является реализацией Microsoft регулярных выражений JavaScript. У меня есть статья об объекте VBScript RegExp на моем веб-сайте, которая объясняет, как его использовать.

0 голосов
/ 12 декабря 2008

Как и другие говорили, да. Я просто хотел показать вам документы devguru vbscript , и я считаю, что они, как правило, являются хорошим местом для получения быстрых ответов vbscript. Это раздел об объекте Regexp .

...