Controllare stringa per intero
-
11-10-2019 - |
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?
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:
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