Ankündigung

Einklappen
Keine Ankündigung bisher.

Bindestrich beim Plugin Keyfilter erlauben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bindestrich beim Plugin Keyfilter erlauben

    Hallo Leute,

    ich benutze keyfilter um die möglichen zu benutzenden Zeichen zu begrenzen.
    Dabei will ich alle Gross- und Kleinbuchstaben, alle Umlaute, das ß und den Bindestrich erlauben.

    Außer den Bindestrich klappt auch alles. Hier ist der Code:

    Code:
    $('#textfeld').keyfilter(/[A-Z a-z öäü ÖÄÜ ß \-]/);
    Was mache ich beim Bindestrich falsch? Ich dachte wenn ich ihm dieses Zeichen: \ voranstelle, dann kann man auch Zeichen mit einer besonderen Bedeutung als reines Zeichen erkennbar machen.

    Danke für Eure Hilfe...

  • #2
    Was ist keyfilter?

    Bitte alle notwendigen Infos mitliefern.

    Kommentar


    • #3
      Zitat von ballotade Beitrag anzeigen
      Hallo Leute,
      Was mache ich beim Bindestrich falsch?
      Nichts, ist ja ein normaler Regex.der mit und ohne Backslash funktioniert.

      Kommentar


      • #4
        Zitat von ballotade Beitrag anzeigen
        um die möglichen zu benutzenden Zeichen zu begrenzen.
        HTML-Code:
        <input type="text" name="name" required pattern="^[a-zA-ZöäüßÖÄÜ-]+$">
        Funktioniert dann auch bei abgeschaltetem Javascript.

        https://www.mediaevent.de/html/input-pattern.html

        Kommentar


        • #5
          Meines Wissens ist innerhalb einer Zeichenklasse [ ] es so, das man einen Bindestrich, wenn er als letztes Zeichen dort steht, nicht maskieren muss/darf. Wenn er nicht als letztes Zeichen steht dann schon, denn dann gilt er ja sonst als "bis" zB [a-z] erlaubt a bis z, hingegen [az-] erlaubt ein a, ein z, oder einen Bindestrich. Irgendwas hab ich da im Hinterkopf.
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            hausl so ist es, siehe auch #3.

            Kommentar


            • #7
              Hey Leute,

              erstmal danke für Eure Hilfe und Kommentare.

              Ich habe den Bindestrich jetzt ohne \ geschrieben und da klappt es.

              hellbringer Keyfilter ist ein JQuery Plugin, das es erlaubt bei Input-Feldern nur bestimmte Zeichen zu erlauben... Andere Zeichen kommen gar nicht durch...
              protestix Das mit pattern="^[a-zA-ZöäüßÖÄÜ-]+$" bei input-Feldern kannte ich nicht. Werde Deinen Link mal studieren...

              Kommentar


              • #8
                ballotade du solltest serverseitig mit PHP aber auch noch prüfen, denn sowohl der JS als auch das HTML Regex können "umgangen" werden, wenn der Fom Submit nicht von deiner Seite kommt. Nur als Info. https://php-de.github.io/jumpto/sicherheit/
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Zitat von ballotade Beitrag anzeigen
                  Ich habe den Bindestrich jetzt ohne \ geschrieben und da klappt es.
                  Sehe ich anders - es bleibt egal

                  HTML-Code:
                  <!DOCTYPE html>
                  <html lang=de>
                    <meta charset=UTF-8>
                    <title>Keyfilter</title>
                    <script src=https://code.jquery.com/jquery-3.4.1.min.js></script>
                    <script src=https://cdn.rawgit.com/akzhan/jquery-keyfilter/master/jquery.keyfilter.js></script>
                    <input id=myInput>
                    <input id=myInput1>
                    <script>
                      $('#myInput').keyfilter(/[A-Z a-z öäü ÖÄÜ ß \-]/);
                      $('#myInput1').keyfilter(/[A-Z a-z öäü ÖÄÜ ß -]/);
                    </script>

                  Kommentar


                  • #10
                    Ich würde auch eher zu der HTML Variante von protestix in #4 tendieren. Ist für mich schon wieder ein unnötiges jQuery-Plugin.
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Das Plugin ist nicht nur unnötig, sondern sogar Fehlerhaft.
                      Wenn es sich tatsächlich um das Plugin von Kaminbausatz handelt und man sich mit REGEX auskennt, erkennt man die Lücken die der Autor da eingebaut hat.
                      Soucecode unter https://github.com/akzhan/jquery-keyfilter

                      Es ist also nicht immer von Vorteil sich auf fremde Plugins zu verlassen. Ein Blick in den Sourcecode eröffnet einem schnell(sofern man das beurteilen kann) ob das Plugin das tut was es soll ohne zusätzliche Sicherheitslücken auf zu machen.

                      Kommentar


                      • #12
                        Zitat von protestix Beitrag anzeigen
                        Wenn es sich tatsächlich um das Plugin von Kaminbausatz handelt und man sich mit REGEX auskennt, erkennt man die Lücken die der Autor da eingebaut hat.
                        Das schreibt er ja leider nicht, ich finde es auch grenzwertig.

                        Kommentar

                        Lädt...
                        X