Вопрос

Я хочу проверить поле ввода. Пользователь должен ввести номер телефона с минимальной длиной 10 цифр.

Поэтому мне нужно проверить на незаконные чары. Было бы неплохо просто проверить, что вход является целым числом или нет.

Я придумал это, но это не работает (n будет строкой).

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

Любые идеи?

Это было полезно?

Решение

Вы можете сделать тест, как это:

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

Это не удастся, если в строке не будет цифр, или строка составляет менее 10 чар, длину

Другие советы

Это должно работать ((input - 0) автоматически пытается преобразовать значение в число):

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

В этой проблеме уже есть такая вопрос: Проверить десятичные цифры в JavaScript - isNumeric ()

Может быть для вас излишним, но Google не так давно объявил библиотека для проверки телефона. Доступны варианты Java и JavaScript.

Проверка номера телефона немного сложнее, чем проверить, является ли вход целым числом. В качестве примера телефонные номера могут и начинаются с нулей, так что это не технически, а Int. Также пользователи могут вводить тире: например:

00 34 922-123-456

Итак, что касается подтверждения, у вас есть пара вариантов:

  • Используйте выражение Regex для проверки, посмотрите на:

    http://regexlib.com/

    Этот сайт будет иметь сотни примеров

  • Используйте цикл, чтобы проверить каждого символы по очереди, то есть символ Int или Dash

Я бы порекомендовал первое, так как последний зависит от последовательного ввода пользователей, и вы не получите это

Почему бы не использовать:

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

как возврат в вашей функции?

Это вывод консоли 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 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top