Frage

Ich möchte ein Eingabefeld bestätigen. Der Benutzer sollte mit Mindestlänge von 10 Stellen in einer Telefonnummer eingeben.

Also brauche ich für illegale Zeichen zu überprüfen. Es wäre schön, nur um zu überprüfen wheather die Eingabe eine ganze Zahl ist oder nicht.

Ich kam mit dieser, aber es funktioniert nicht (n wäre die Zeichenfolge).

function isInt(n){
    return typeof n== 'number' && n%1==0;
}

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie können einen Test wie folgt aus:

input.length >= 10 && /^[0-9]+$/.test(input)

Das wird fehlschlagen, wenn es nicht-Ziffern in der Zeichenfolge oder die Zeichenfolge weniger als 10 Zeichen lang

Andere Tipps

Das sollte funktionieren ((input - 0) versucht, den Wert automatisch in eine Zahl umgewandelt werden):

function isInt(input){
   return ((input - 0) == input && input % 1==0);
}

Es ist bereits eine SO-Frage zu diesem Thema: Validate Dezimalzahlen in JavaScript - IsNumeric ( )

Könnte ein Overkill für Sie sein, aber Google hat nicht allzu langer Zeit eine Bibliothek angekündigt für Telefonvalidierung. Java und Javascript-Varianten stehen zur Verfügung.

Validating a phone number is a little more complicated than checking if the input is an integer. As an example phone numbers can and do begin with zeros so it isn't technically and int. Also users may enter dashes: For example:

00 34 922-123-456

So, as for validating it you have a couple of options:

  • Use regex expression to validate, have a look at:

    http://regexlib.com/

    this site will have hundreds of examples

  • Use looping to check each characters in turn, i.e. is character int or dash

I would recommend the former as the latter depends on consistent input from users and you aren't going to get that

Why not use:

return (+val === ~~val && null !== val);

as a return in your function?

this is the output of the javascript console

> +"foobar" === ~~"foobar"
  false
> +1.6 === ~~1.6
  false
> +'-1' === ~~'-1'
  true
> +'-1.56' === ~~'-1.56'
  false
> +1 === ~~1
  true
> +-1 === ~~-1
  true
> +null === ~~null // this is why we need the "&& null !== val" in our return call
  true 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top