String auf gültigen Ordnernamen prüfen

  • Unter Windows sind folgende Zeichen nicht als Teil von einem Ordnername erlaubt:
    /\:*?"<>|


    Wie kann ich am einfachsten prüfen ob eines der Zeichen in einem String vorkommt?
    Geht das mit StringRegExp ? Oder bleibt mir nur die Variante mit StringInStr ?

    Gibt es eine Möglichkeit zu prüfen ob der String nur aus Groß und Kleinbuchstaben besteht?
    Bräuchte das als Fehlerbehandlung. Der Benutzer soll nur seinen Namen eintragen, es könnte ja trotzdem sein, dass er aus versehen auf ein Sonderzeichen oder eine Zahl kommt.

    Einmal editiert, zuletzt von Bitboy (26. Juni 2009 um 10:23)

    • Offizieller Beitrag

    Das kannst du so lösen:

    [autoit]


    ; Ordnername prüfen
    $folder1 = 'blablub'
    $folder2 = 'bla?blub'

    [/autoit][autoit][/autoit][autoit]

    If StringRegExp($folder1, '[/\\:*?"<>|]') Then
    MsgBox(0, 'Prüfung', 'Ordnername fehlerhaft')
    Else
    MsgBox(0, 'Prüfung', 'Ordnername OK')
    EndIf

    [/autoit][autoit][/autoit][autoit]

    If StringRegExp($folder2, '[/\\:*?"<>|]') Then
    MsgBox(0, 'Prüfung', 'Ordnername fehlerhaft')
    Else
    MsgBox(0, 'Prüfung', 'Ordnername OK')
    EndIf

    [/autoit][autoit][/autoit][autoit]

    ; nur Klein-/Großbuchstaben
    $str1 = 'abCDefGH'
    $str2 = 'ab12CD'

    [/autoit][autoit][/autoit][autoit]

    If StringRegExp($str1, '\A[a-zäöüßA-ZÄÖÜ]*\z') Then
    MsgBox(0, 'Prüfung', 'OK')
    Else
    MsgBox(0, 'Prüfung', 'FEHLER')
    EndIf

    [/autoit][autoit][/autoit][autoit]

    If StringRegExp($str2, '\A[a-zäöüßA-ZÄÖÜ]*\z') Then
    MsgBox(0, 'Prüfung', 'OK')
    Else
    MsgBox(0, 'Prüfung', 'FEHLER')
    EndIf

    [/autoit]