Programmierer: Funktion funktioniert nicht ganz

ich habe eine funktion die ich hier gefunden habe ein wenig ausgeweitet. gut möglich dass es nicht die beste lösung ist aber mehr fällt mir nicht ein. jedenfalls geht sie nicht. es geht im prinzip darum, dass ein feld überprüft wird ob eine gültige telefonnummer darin steht. hier mal der code

var chkZ = 1;
 var chkZahlen = 1;
 var chkFinal = 1;
 for(i=0;i<document.Formular.Telefon.value.length;++i)
   if(document.Formular.Telefon.value.charAt(i) < "0"
   || document.Formular.Telefon.value.charAt(i) > "9")
     chkZahlen = -1;
   if(document.Formular.Telefon.value.indexOf('/') == -1)
     chkZ = -1;
   if(chkZ==-1) {
     if(chkZahlen == -1)
       chkFinal = -1;
   else
     if(chkZahlen == -1)
       chkFinal = -1;
   }
   if(document.Formular.Telefon.value.length<6)
     chkFinal == -1;
 if(chkFinal == -1) {
   return false;
  }

was ich damit erreichen will ist eigentlich nur dass das feld nur zahlen enthalten darf und wenn ein / vorkommt soll er es sozusagen ignorieren, also nicht alarm schlagen. und sie sollte >= 5 sein. könnt ihr mir vielleicht weiterhelfen? - also wenn nur buchstagen drin schlägt er alarm, wenn nur zahlen drin sind geht es aber wenn es buchtaben sind aber darin ein / vorkommt geht es nichtmehr.

mfg

Programmierer

  1. hi!

    das kannst du auch einfacher haben

    function verifyPhoneNumber(str){
      var regexpr="[1]+[/-]?[0-9]+$";
      var rx=new RegExp(regexpr);
      return (rx.exec(str) && str.length>4)?true:false;
    }
    aufruf mit
    verifyPhoneNumber(document.Formular.Telefon.value);

    ueberprueft, ob uebergebener string str
    1. mit mind. einer zahl beginnt
    2. mit mind. einer zahl aufhoert
    3. mittendrin irgendwo entweder max. ein slash oder max. ein bindestrich hat.

    auf leerzeichen z.b. wird noch nicht geprueft...

    prost
    seth

    ps. oder moechtest du unbedingt deinen anderen code verwenden?


    1. 0-9 ↩︎