none
Regex Frage - Zeichenfolge ausschließen RRS feed

  • Frage

  • Hallo zusammen,

    es ist einfach banal, ich möchte ein Eingabefeld validieren mit einem Regexp.
    Eigentlich speichere ich mir die Muster immer, aber ich finde es nicht wieder. Und zwar möchte ich gerne für die Eingabe bestimmte Zeichen ausschließen z.B. http:// oder ftp:// oder http://www.

    Irgend ein Blöd*** schickt mir seit ein paar Tagen irgendwelche Links auf ein Kontaktformular. Hat jemand ein Beispielmuster für mich?
    Vielen Dank im voraus.


    Liebe Grüße, die Luzie!

    Donnerstag, 24. Januar 2013 08:38

Antworten

Alle Antworten

  • Hallo, um zu überprüfen ob es sich um einen Link handelt, kannst du mal folgende Seite ansehen:

    http://blog.jan-welker.de/2007/11/24/ASPNETExterneUndInterneLinksUnterscheiden.aspx

    Dort findest du ein Regex der Internet adressen sucht.

    Um Alternativ bestimmte Seiten noch zuzulassen (deine eigene, ...) kannst du folgendes verwenden:

    (ftp|http)s?://(?!(meine\.com|microsoft\.com))

    Dieser Regex schlägt Alarm bei Strings, die mit einem ftp(s) oder http(s) anfangen und nicht auf meine.com oder microsoft.com verweisen.

    Zum Validieren kannst du bspws. die Abfrage in die Senden-Funktion einbauen.


    Koopakiller [kuːpakɪllɐ] | Webseite | Code Beispiele | Facebook | Snippets

    Donnerstag, 24. Januar 2013 15:00
  •        

    Hallo

    erstmal vielen herzlichen Dank für die Hilfe.

    Ich stehe ja immer etwas auf Kriegsfuss mit dem Customvalidator. Der greift bei mir nicht. möglicherweise mach ich irgendetwas falsch.

    Das ist der Code

     <asp:customvalidator id="cvKomm"
                      controltovalidate="kommentar"
                      errormessage="Die Eingabe ist falsch. "
                      onservervalidate="servervalidation"
                      ValidationGroup="x2"
                      display="dynamic"
     runat="server">*</asp:customvalidator> 
     

    im code-Behind-Bereich

      Sub ServerValidation(source As Object, args As ServerValidateEventArgs)
             Dim RegExVal As New Regex("http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?")
             If RegExVal.IsMatch(args.Value) Then
                 args.IsValid = False
             Else
                 args.IsValid = True
             End If
     End Sub
      

    Der springt einfach nicht an. Ich habe noch weitere 4 Felder, die ich validiere, da habe ich keine Probleme.

    Wenn ich allerdings etwas trickse

     Private Function IsURL(ByVal candidate As String) As Boolean
             Dim regex As New Regex("http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?")
             Return regex.IsMatch(candidate)
        End Function
        
         Protected Sub btn_mail_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_mail.Click
                If IsURL(Me.kommentar.Text) = False Then
        
                ....
                End If
        End Sub

    dann greift der Customvalidator, aber erst ganz zum Schluss. Gibt es dafür eine Erklärung? Was ist falsch?


    Liebe Grüße, die Luzie!

    Donnerstag, 24. Januar 2013 16:47
  • Hallo Luzie,

    Allgemeine Infos zur Verwendung der regulären Ausdrucke in ASP.NET und eine Auflistung der meistverwendeter Ausdrucker finden Sie unter [1] und [2].

    [1] http://msdn.microsoft.com/de-de/library/ff650303.aspx
    [2] http://msdn.microsoft.com/de-de/library/ms972966.aspx

    Viele Grüße,
    Anna Koch
    App-Entwickler-Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die App-Entwickler-Hotline: http://www.msdn-online.de/Hotline
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die App-Entwickler-Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die App-Entwickler-Hotline.

    Donnerstag, 24. Januar 2013 16:57
  • Hallo Anna,

    vielen Dank für die Links.


    Liebe Grüße, die Luzie!

    Donnerstag, 24. Januar 2013 17:38