Connect failed: Connection timed out

[GastForen Programmierung/Entwicklung JavaScript Eingabeprüfung vierstellige Ziffer

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Eingabeprüfung vierstellige Ziffer

MarioF
Beiträge gesamt: 390

3. Jan 2020, 23:24
Beitrag # 1 von 3
Bewertung:
(12301 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich möchte ein Feld überprüfen, ob er mit 4 Ziffern gefüllt ist.
Code
var input = _testEdit.text.search(/d+/); 
var inputLength = _testEdit.text.length;

if(inputLength != 4 && input != -1){
alert('Eingabe falsch');
exit(0);
}


Bei 5 oder mehr Buchstaben gibt er eine Meldung aus. Wie bekomme ich die Abfrage hin?
X

Eingabeprüfung vierstellige Ziffer

mkktbkkt
Beiträge gesamt: 1

7. Jan 2020, 10:39
Beitrag # 2 von 3
Beitrag ID: #573486
Bewertung:
(12200 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

hier gibt es ein paar Sachen die Du korrigieren müsstest:

Code
var input = _testEdit.text.search(/d+/); 



Das "d" sucht hier nicht nach Ziffern, sondern nach dem Buchstaben "d" - für die Suche nach Ziffern fehlt ein Backslash davor - also etwa so:
Code
var input = _testEdit.text.search(/\d+/); 





Code
if(inputLength != 4 && input != -1){ 



Du prüfst, ob die Länge der Eingabe nicht 4 ist und ob dein Regex-Pattern in der Eingabe gefunden wurde - nur wenn beides zutrifft, gibst du den Fehler aus.
Wenn also zum Beispiel die Eingabe nicht mit deinem Regex-Pattern, übereinstimmt, wird nie ein Fehler ausgegeben (da beide Bediungungen für die Fehlermeldung vorausgesetzt werden)

Ich würde hier - wenn du schon Regex einsetzt - gleich das ganze damit prüfen, dies kannst Du folgendermassen umsetzen:
  • mit einem "^" am Anfang des Patterns sagst Du, dass das gesuchte am Anfang des Strings sein muss
  • mit einem "$" am Ende des Patterns sagst Du, dass das gesuchte am Ende des Strings sein muss
  • das "+" sagt dass mindestens eins, maximal unendlich viele Zeichen übereinstimmen müssen - Du kannst hier auch eine konkrete Zahl angeben (da Du ja genau 4 Ziffern willst), indem Du stattdessen "{4}" angibst.

Da du so alle Bedingungen (nur Ziffern, exakt 4 Zeichen) über Regex prüfen kannst, müsstest Du dann nur noch prüfen, ob es auch einen Treffer gab - das würde dann also schlussendlich etwa so aussehen:
Code
var input = _testEdit.text.search(/^\d{4}$/);   

if(input === -1){
alert('Eingabe falsch');
exit(0);
}




Gruss
Stefan


als Antwort auf: [#573458]

Eingabeprüfung vierstellige Ziffer

MarioF
Beiträge gesamt: 390

8. Jan 2020, 22:25
Beitrag # 3 von 3
Beitrag ID: #573504
Bewertung:
(12137 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stefan,
danke für ausführliche Info. Ich werde es mir mal in Ruhe anschauen.


als Antwort auf: [#573486]