Wolfgang Herrmann: JavaScript -» Formularfeld -» Telefonnummer

Hallo zusammen,
mein Problem ist schnell beschrieben: In einem Formularfeld (Telefonnummer) möchte ich nur die Ziffern 0..9, Leerzeichen, Bindestrich, Schrägstrich und evtl. linke und rechte Klammer zulassen. Abweichende Eintragungen sollen durch ein JavaScript als unzulässig zurückgewiesen werden. Kann man das relativ kurz regeln, oder muss ich wirklich auf alle unzulässigen Zeichen abfragen? Mir fällt im Moment sonst nichts anderes ein :-(
MfG Wolfgang

  1. Hallo zusammen,
    mein Problem ist schnell beschrieben: In einem Formularfeld (Telefonnummer) möchte ich nur die Ziffern 0..9, Leerzeichen, Bindestrich, Schrägstrich und evtl. linke und rechte Klammer zulassen. Abweichende Eintragungen sollen durch ein JavaScript als unzulässig zurückgewiesen werden. Kann man das relativ kurz regeln, oder muss ich wirklich auf alle unzulässigen Zeichen abfragen? Mir fällt im Moment sonst nichts anderes ein :-(
    MfG Wolfgang

    Zwie möglichkeiten gibts da:

    1. mit RegularExpression

    a = eingabe.match(/0-9/-\s[]/)
    if (a) alert ("Nix da!So nun nich...")

    Ich hoffe das ich den RegExp so jetzt aus dem Kopf richtig gesetzt habe :-)
    siehe SelfHtml : SELFHTML  JavaScript   Objektreferenz Sting & RegExp

    2. konventionell:
    funktion check(eingabe)
    {
    var nur_das ="0123456789-[]/"
    for (a = 0 ;a < eingabe.length ; a++) {
    if (nur_das.indexOf(eingabe.charAt(a)) > -1 ) return false
    }
    return true
    }

    viel Spass

    Timo

    P.S. Mann kann natürlich noch die länge überprüfen o. mit .replace automatisch alle ungültigen zeichen feuern oder mit indexOf("/") überprüfen ob die Vorwahl nicht zu lang ist. Aber bei internationalen rufnummern würde ich das + noch zulassen .

      1. konventionell:
        funktion check(eingabe)
        {
        var nur_das ="0123456789-[]/"
        for (a = 0 ;a < eingabe.length ; a++) {
        if (nur_das.indexOf(eingabe.charAt(a)) > -1 ) return false

      Uups : nicht > -1 sondern < 0. :-o

      Timo