telefon prüfen auf nur 0 oder 1

Helge Kühling

Grünschnabel
Telefonnummer prüfen auf nur 0 oder 1

Hallo,

ich habe folgendes Problem:

Ich überprüfe ein Eingabefeld ob dort was drin steht oder nicht.

Problematik ist, dass viele Leute dieses Telefonfeld mit 00000 oder 11111 usw. ausfüllen.

Wie bekomme ich es hin, dass man vielleicht per regex oder Funktion dieses unterbindet. Habt ihr da vielleicht eine Idee?


mfg Helge
 
Zuletzt bearbeitet:
Das Überprüfen an sich ist ja kein Problem...
...nur wie willst du festlegen, was gültig ist, und was nicht?!

Mit Leichtigkeit würde man es schaffen, zu überprüfen, ob alles 1er, 2er, usw eingegeben wurden; nur wenn das nicht funktioniert, wird eben zB 12345 oder ähnliches eingegeben, ganz verhindern wirst du die Falscheingaben nicht bzw nur mit ziemlich hohem Aufwand.

lg D;-]c
 
Original geschrieben von DrOverflow
Das Überprüfen an sich ist ja kein Problem...
...nur wie willst du festlegen, was gültig ist, und was nicht?!

Mit Leichtigkeit würde man es schaffen, zu überprüfen, ob alles 1er, 2er, usw eingegeben wurden; nur wenn das nicht funktioniert, wird eben zB 12345 oder ähnliches eingegeben, ganz verhindern wirst du die Falscheingaben nicht bzw nur mit ziemlich hohem Aufwand.

lg D;-]c

Ich habe mittlerweile mehrere Überprüfungen drin, ich versuche halt nach und nach die Fehleingaben zu unterbinden. Es fehlt halt noch die Überprüfung auf nur 0,1,2... usw.
Ich bekomme das als javascript noop nicht hin ;(
 
Zuletzt bearbeitet:
Jetzt hatte ich eine geniale :-) Algorithmus-Idee für dein Problem.

Und zwar:
Wenn du nur überprüfen möchtest, ob die Nummer durchgehend aus einem bestimmten Zeichen besteht, ermittelst du zuerst die Länge der Nummer.
Laenge = Nummer.length
Dann erstellst du dir eine temporäre Zahl mithilfe einer For-Schleife
var tempzahl = "";
for(var i =0; i<Laenge; i++)
tempzahl = tempzahl + '1'

Wenn der Falscheingeber zB 2222 eingegeben hat, hat die Variable Laenge den Wert 4, dh die For-Schleife wird exakt 4mal durchlaufen.
In der Schleife wird an die Variable tempzahl immer ein Zeichen angehängt, und zwar ein 1er - und wenn die Schleife fertig ist, hast du in der Variablen tempzahl den Wert 1111.
Da die falschen Eingaben aus den selben Zeichen bestehen, sind sie logischerweise immer ein Vielfaches von 1111 (wobei 1111 ja von der Länge der Eingabe abhängig ist, es wäre auch 111 oder 1111111, usw möglich).

Nun musst du nur noch in einer Schleife tempzahl so oft von der Eingabe abziehen, bis entweder genau 0, oder ein negativer Wert herauskommt.
Bei 0 besteht die Eingabe nur aus den selben Zeichen, bei einem negativen Wert ist das nicht der Fall.
Das wäre dann nur noch in eine Funktion zu packen, mit einer Überprüfung am Schluss - bei 0 return true, sonst return false - und schon hast du deine Überprüfung.

Bei weiteren Fragen stehe ich gerne zur Verfügung, :-)

lg D;-]c
 
Ich habe es nun so gelöst...

Code:
function str_count(haystack)
{
  var i;
  var j;
  var count = 0;

  for (j = 0; j <= 9; j++)
  {
    for (i = 0; i < haystack.value.length; i++)
    {
      if (haystack.value.charAt(i) == j)
      {    
        count++;
      }
    }
    
    if (count > 6)
    {
      return 1;
    }
    count = 0;
  }
}

Ist nicht schön - aber selten ;) So bricht es jetzt wenn es mehr als 6 mal eine Ziffer gibt ab.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück