vb-net
Goto Top

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

Content-ID: 98602

Url: https://administrator.de/contentid/98602

Ausgedruckt am: 22.11.2024 um 15:11 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!