Domanda

Voglio convalidare un campo di input. L'utente deve digitare un numero telefonico con lunghezza minima di 10 cifre.

Così ho bisogno di verificare la presenza di caratteri illegali. Sarebbe bello solo per controllare wheather l'ingresso è un numero intero oppure no.

sono arrivato fino a questo, ma non funziona (n sarebbe la stringa).

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

Tutte le idee?

È stato utile?

Soluzione

Si può fare un test come questo:

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

che fallirà se ci sono non-cifre nella stringa o la stringa è inferiore a 10 caratteri lungo

Altri suggerimenti

Questo dovrebbe funzionare ((input - 0) tenta automaticamente di convertire il valore a un numero):

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

C'è già un modulo SO-domanda su questo problema: Convalida decimali numeri in JavaScript - IsNumeric ( )

Potrebbe essere un eccessivo per voi, ma Google non ha troppo tempo fa ha annunciato un biblioteca per la convalida telefono. varianti Java e JavaScript sono disponibili.

Convalida di un numero di telefono è un po 'più complicato di controllare se l'ingresso è un numero intero. Come esempio numeri di telefono possono e iniziano con zeri quindi non è tecnicamente ed int. Inoltre gli utenti possono inserire trattini: Ad esempio:

00 34 922-123-456

Quindi, come per la convalida che si dispone di un paio di opzioni:

  • Usa espressione regex per validare, di dare un'occhiata a:

    http://regexlib.com/

    questo sito avrà centinaia di esempi

  • Usa loop controlla ogni carattere a sua volta, cioè è il carattere int o precipitare

mi sento di raccomandare il primo come il secondo dipende ingresso coerente da parte degli utenti e non si ha intenzione di ottenere che

Perché non usare:

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

come un ritorno nella funzione?

Questa è l'uscita della console javascript

> +"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 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top