JS-Dau: Maximale Länge eines Wortes im Eingabefeld

Hallo!

Ich möchte mit JavaScript unterbinden, dass jemand ein Wort, das Länger als 20 Zeichen ist, eingibt - zumindest soll mit JS gecheckt werden, ob so ein Wort vorhanden ist, wenn ja -> Error.

Wie mach ich das?

Irgendjemand meinte "soetwas wie" "if(eintrag.match(/\w{30}/))" - aber ich hätte gerne ein funktionierendes & konkretes Bsp.

Thx,
  Robert

  1. maxlength="20"

    Ist zwar kein JavaScript, sondern nur HTML, aber das gibt auch an, dass Wörter nicht länger als 20 Zeichen werden können.

    Where is the problem? ;)

    1. Hmm - du bis ja wohl noch mehr DAU als ich!

      maxlength="20"

      Das erlaubt nicht mehr als 20 Zeichen für das _gesamte_ Eingabefeld!

      Ist zwar kein JavaScript, sondern nur HTML, aber das gibt auch an, dass Wörter nicht länger als 20 Zeichen werden können.

      Nein, es erlaubt insgesamt maximal 20 Zeichen!

      Where is the problem? ;)

      Dass ich in einem Textfeld kein WORT erlauben will, dass länger als 20 Zeichen ist!

      :-/

      JS-DAU

      1. Das wird dann nicht ganz so einfach. Mußt du dir eine Funktion schreiben, die den Text im Eingabefeld nach Leerzeichen splitted. De JS-Befehl lautet soweit ich weiß split, schau am besten in selfhtml nach.

        Du splittest dir also den Text in lauter einzelne Wörter, diese kann man irgendwie automatisch in einem Feld speichern, sagen wir mal das Feld heißt splittet_words. Dann kannst du mittels:

        for (i=0; i<splitted_words.length;i++) {
        if (splitted_words[i].length >= 20) return false;
        }
        return true;

        Diese Funktion gibt false zurück, sobald ein Wort länger als 20 Zeichen ist, wenn du wie gesagt deinen Text oder deine Eingabewörter in das Feld splitted_words nach Leerzeichen splittest!

        MfG
        Michael

        1. Hmm,

          Das wird dann nicht ganz so einfach. Mußt du dir eine Funktion schreiben, die den Text im Eingabefeld nach Leerzeichen splitted. De JS-Befehl lautet soweit ich weiß split, schau am besten in selfhtml nach.

          ...ganz nett...

          Du splittest dir also den Text in lauter einzelne Wörter, diese kann man irgendwie automatisch in einem Feld speichern, sagen wir mal das Feld heißt splittet_words. Dann kannst du mittels:

          ...und ich häng auch an den Sachen bis "dann" ;-) also wäre mir was 100%ig fertigs sehr lieb ;-)

          for (i=0; i<splitted_words.length;i++) {
          if (splitted_words[i].length >= 20) return false;
          }
          return true;

          Diese Funktion gibt false zurück, sobald ein Wort länger als 20 Zeichen ist, wenn du wie gesagt deinen Text oder deine Eingabewörter in das Feld splitted_words nach Leerzeichen splittest!

          Gut!

          JS-Dau

          1. Hmm,

            Das wird dann nicht ganz so einfach. Mußt du dir eine Funktion schreiben, die den Text im Eingabefeld nach Leerzeichen splitted. De JS-Befehl lautet soweit ich weiß split, schau am besten in selfhtml nach.

            ...ganz nett...

            Du splittest dir also den Text in lauter einzelne Wörter, diese kann man irgendwie automatisch in einem Feld speichern, sagen wir mal das Feld heißt splittet_words. Dann kannst du mittels:

            ...und ich häng auch an den Sachen bis "dann" ;-) also wäre mir was 100%ig fertigs sehr lieb ;-)

            for (i=0; i<splitted_words.length;i++) {
            if (splitted_words[i].length >= 20) return false;
            }
            return true;

            Diese Funktion gibt false zurück, sobald ein Wort länger als 20 Zeichen ist, wenn du wie gesagt deinen Text oder deine Eingabewörter in das Feld splitted_words nach Leerzeichen splittest!

            Gut!

            JS-Dau

            probier´s mal hiermit:

            ...
            function CheckWordLength(stringToCheck)
            {
             var testArray=stringToCheck.split(" ")
             for (i=0; i<testArray.length;i++)
             {
              if (testArray[i].length >= 20) return false;
             }
            return true;
            }
            ...
            der Funktion übergibst Du also den Inhalt des zu testenden Textfeldes und bekommst als Rückgabewert false urück, wenn irgendein Bestandteil des übergebenen Strings mehr als 20 Zeichen hat.
            ...
            der Aufruf könnte dann so aussehen:
            ...
            var testOK=true
            testOK=CheckWordLength(document.all.textelement.value)
            if (testOK==false)
            {
             ...Fehlermeldung + Fehlerbehandlung
            }

            So, sollte soweit klar sein, oder?

            Viel Spaß noch...
            Mark