Мне нужно проверить justPrices[i].substr(commapos+2,1)
.
Строка выглядит примерно так: «blabla, 120».
В этом случае он проверит, является ли «0» числом. Как это может быть сделано?
javascript
Lisovaccaro
источник
источник
Ответы:
Вы можете использовать операторы сравнения, чтобы увидеть, находится ли он в диапазоне цифровых символов:
источник
вы можете использовать
parseInt
а затем проверить с помощьюisNaN
или если вы хотите работать непосредственно со своей строкой, вы можете использовать регулярное выражение следующим образом:
источник
function is_numeric_char(c) { return /\d/.test(c); }
is_numeric_char("foo1bar") == true
). если вы хотите проверить числовой символ,/^\d$/.test(c)
было бы лучшим решением. но в любом случае, это был не вопрос :)EDIT: обновленный ответ Blender - правильный ответ, если вы просто проверяете один символ (а именно
!isNaN(parseInt(c, 10))
). Мой ответ ниже - хорошее решение, если вы хотите протестировать целые строки.Вот
isNumeric
реализация jQuery (на чистом JavaScript), которая работает с полными строками :Комментарий к этой функции гласит:
Думаю, можно верить, что эти ребята потратили на это немало времени!
Комментируемый источник здесь . Обсуждение супер компьютерщиков здесь .
источник
Интересно, почему никто не опубликовал решение вроде:
с призывом вроде:
источник
Вы можете использовать это:
Здесь я сравнил его с принятым методом: http://jsperf.com/isdigittest/5 . Я не ожидал многого, поэтому был очень удивлен, когда обнаружил, что принятый метод работает намного медленнее.
Интересно то, что, хотя принятый метод является более быстрым для правильного ввода (например, «5») и медленнее для неправильного (например, «a»), мой метод полностью противоположен (быстрый для неправильного и медленный для правильного).
Тем не менее, в худшем случае мой метод в 2 раза быстрее принятого решения для правильного ввода и более чем в 5 раз для неправильного ввода.
источник
!!([!0, !0, !0, !0, !0, !0, !0, !0, !0, !0][n]);
он имеет большой потенциал WTF и работает достаточно хорошо (не работает007
)."length"
Я думаю, очень интересно придумывать способы решить эту проблему. Ниже приведены некоторые.
(Все функции ниже предполагают, что аргумент - это один символ. Измените на
n[0]
чтобы применить его)Способ 1:
Способ 2:
Способ 3:
Метод 4:
Метод 5:
Тестовая строка:
источник
true
для" "
.charCodeAt()
сравнение - которое было почти в 4 раза быстрее - jsperf.com/isdigit3Простая функция
источник
Если вы тестируете одиночные символы, то:
вернет истину или ложь в зависимости от того, является ли c цифрой или нет.
источник
Я предлагаю простое регулярное выражение.
Если вы ищете только последний символ в строке:
А регулярное выражение еще проще, если вы просто проверяете один символ в качестве ввода:
источник
Самое короткое решение:
Вы также можете применить их:
если вы хотите проверить более 1 чатактера, вы можете использовать следующие варианты
Регулярное выражение:
Сравнение:
Проверьте, не NaN
источник
источник
вывод без строгого режима:
вывод в строгом режиме:
источник
Пытаться:
источник
Как и в одном из ответов выше, я использовал
Этот пост проливает свет на эту проверку, является ли строка числовой в Javascript | Машинопись и ES6
источник
Простое решение за счет использования динамической проверки типов языка:
см. тестовые примеры ниже
Показать фрагмент кода
источник
Кажется, это работает:
Статическая привязка:
Привязка прототипа:
Он будет проверять отдельные символы, а также целые строки, чтобы узнать, являются ли они числовыми.
источник
Источник
источник
Исходный код
источник
Вы можете попробовать это (сработало в моем случае)
Если вы хотите проверить, является ли первый символ строки int:
Если вы хотите проверить, является ли char типом int:
источник
Эта функция работает для всех тестовых случаев, которые я смог найти. Это также быстрее, чем:
источник
Насколько мне известно, проще всего умножить на
1
:Умножение на единицу делает число из любой числовой строки (поскольку у вас есть только один символ, он всегда будет целым числом от 0 до 9) и a
NaN
для любой другой строки.источник
Просто используйте
isFinite
источник