Qual é a maneira mais robusta de analisar domínio e nome de usuário de uma string de usuário em vbscript?

1

O usuário pode inserir uma string, basicamente, 4 opções:

  1. nome de usuário
  2. . \ nome de usuário
  3. localcomputername \ username
  4. remotedomain.com \ nome de usuário

Qual é a maneira mais robusta de retornar o domínio e o nome de usuário, dada a cadeia de entrada em vbs?

Então, para as 4 strings de entrada acima, aqui estão as saídas:

  1. domain="localcomputername", usernme="nome de usuário"
  2. domain="localcomputername", usernme="nome de usuário"
  3. domain="localcomputername", usernme="nome de usuário"
  4. domain="remotedomain.com", usernme="nome de usuário"
por Jeff 01.08.2012 / 22:27

1 resposta

0

Eu faria isso em duas fases:
Primeiro divida a entrada em um nome de usuário e uma senha com uma expressão regular

Option Explicit

dim re, matches, match, test

Set re = new regexp
re.pattern = "^((.*)\)?(.*)$"

for each test in array( _
    "username", _
    ".\username", _
    "localcomputername\username", _
    "remotedomain.com\username")

    Set matches = re.Execute(test)
    for each match in matches
        msgbox "domain: " & match.submatches(1) & vbNewLine & _
                "username: " & match.submatches(2)
    next
next

Em seguida, use um caso selecionado para tornar o nome de domínio válido:

dim localhost, testdomain, outputDomain

localhost = "192.168.0.1"
for each testDomain in array( _
    ".", _
    localhost, _
    "", _
    "remotedomain.com")

    select case testDomain
        case localhost, "", "."
            outputDomain = localhost
        case else
            outputDomain = testDomain
    End Select

    msgbox testDomain & " becomes " & outputDomain
Next

Combine esses dois e você terá seu script para obter o domínio e o nome de usuário.
Aviso: O código acima é testado em código de exame, mas você precisa adaptá-lo à sua situação específica.

    
por 02.08.2012 / 14:00