Ich versuche, eine Validierungsprüfung für ein Array einzurichten. Ich habe folgendeValidieren Sie gegen ein Array
$ValidDomain = "*.com","*.co.uk"
$ForwardDomain = Read-Host "What domain do you want to forward to? e.g. contoso.com"
#while (!($ForwardDomain -contains $ValidDomain)) {
while (!($ValidDomain.Contains($ForwardDomain))) {
Write-Warning "$ForwardDomain isn't a valid domain name format. Please try again."
$ForwardDomain = Read-Host "What domain do you want to forward to? e.g. contoso.com"
}
Die kommentierte while
Linie ist nur eine Alternative, wie ich diese getestet habe.
Wenn ich bei der Eingabeaufforderung von Read-Host
"fjdkjfl.com" eingeben, zeigt dies die Warnmeldung an, anstatt zu sagen, dass sie gültig ist, und schleift weiter.
Ich habe versucht, mit -match
statt -contains
aber die Meldung:
Parsing "* com * co.uk" - Quantifizierer {x, y} folgenden nichts.
Habe ich das völlig falsch?
Vielen Dank. Funktioniert wie ein Leckerbissen. Ich bin ein wenig verwirrt mit der Syntax für die $ ValidDomain-Variable. Mehr noch die "\" & "$" Zeichen und die Platzierung von "(" & ")". Danke für die Konstrukt-Ergänzung, sehr nützlich. – jshizzle
Noch besser danke. Viel klarer. Das einzige, was mich jetzt verwirrt, ist, dass ich '(\ .com | co \ .uk) $' erwarten würde, aber warum ist die Opener-Klammer dort, wo sie ist? – jshizzle
Eigentlich sehe ich es. Es sagt im Grunde einen Literalpunkt für alles vor jedem in den Klammern aufgeführten Element. Danke, danke. – jshizzle