vb-net

String auf unerlaubte Zeichen prüfen mit IndexOf

Hi,
ich habe folgendes Problem. Ich habe vorher meinen String prüfen lassen mit der Funktion InStr. Da ich aber den Microsoft.VisualBasic-Namespace nicht mehr nutzen kann,
muss ich die .NET-Namespaces verwenden. Ich programmiere unter VB.NET.

Jetzt muss ich das ganze mit IndexOf lösen, aber komme nicht weiter.

Folgendes:

Der String darf nur folgende Zeichen enthalten:
 strErlaubteChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_.-"  


  For i = 0 To StringToCheck.Length
      strAktuellesZeichen = StringToCheck.Substring(i, 1)

      If strAktuellesZeichen.IndexOf(strErlaubteChars) > 0 Then
        Return blnErgebnis = False
      End If
    Next

    Return blnErgebnis

Wenn ich nun den Aktuellen String bsp. "hal/0" habe, dann interessiert ihn das nicht. Was mache ich falsch?

MfG

VB-NET
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 98602

Url: https://administrator.de/forum/string-auf-unerlaubte-zeichen-pruefen-mit-indexof-98602.html

Ausgedruckt am: 14.06.2025 um 03:06 Uhr

bastla
bastla 07.10.2008 um 09:19:13 Uhr
Goto Top
Hallo VB-NET!

Versuch's mal so:
Dim strErlaubteChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_.-"  
Dim strAktuellesZeichen As String, i As Integer
Dim blnErgebnis As Boolean = True

For i = 0 To StringToCheck.Length - 1
    strAktuellesZeichen = StringToCheck.Substring(i, 1)
    If strErlaubteChars.IndexOf(strAktuellesZeichen) < 0 Then
        blnErgebnis = False
        Exit For
    End If
Next

Return blnErgebnis
Der Rückgabewert ist "True", wenn der String nur erlaubte Zeichen enthält.

Grüße
bastla
VB-NET
VB-NET 07.10.2008 um 12:02:11 Uhr
Goto Top
Hi,
okay. Mir ist auch aufgefallen, dass ich einfach die IF-Abfrage falsch rum hatte.

Das mit der 'Deklarierung hatte ich vorher auch ;) Exit For kann ich mir ja sparen.

Trotzdem Vielen Dank!