То, как я проверяю то значение, ввело в поле ввода, просто числа?

Я задавался вопросом, что лучший и самый легкий путь состоял в том, чтобы гарантировать, что значение, пользователь вводит в поле ввода, является числовым в веб-странице? или уведомьте их, что их не позволяют тому, когда они редактируют его или не позволяют им входить в не числовые значения для начала.

какие-либо идеи?

спасибо

6
задан Doug Neiner 24 May 2010 в 16:04
поделиться

9 ответов

Если разрешены только целочисленные значения, я бы попробовал что-то вроде:

if( isNaN(parseInt(str, 10)) ) {
    //error
}

EDIT: @M28 и @unomi правы, это может позволить некоторые входные данные, которые на самом деле не являются числами. M28 опубликовал действительно хорошее решение в комментариях:

if( ! (parseInt(str, 10).toString() == str) ) {
    //error
}
7
ответ дан 8 December 2019 в 15:59
поделиться

Используйте это с jQuery - http://digitalbush.com/projects/masked-input-plugin/

Это позволит вводить только числа. Он также очень прост в использовании и полностью настраивается, не говоря уже о легком весе.

0
ответ дан 8 December 2019 в 15:59
поделиться

Лучше всего использовать работу того, кто уже сделал это за вас, с помощью библиотеки проверки и / или библиотеки маскирования ввода. Не изобретайте велосипед, несколько красивых круглых колес с ободами, подходящими практически для любой машины, уже были изобретены для вас.

Не связывать здесь конкретную ссылку, потому что на самом деле это не главное, поиск по «библиотеке проверки формы javascript» найдет довольно много.

Править Я давно не искал, должен сказать, что мне нравится внешний вид этого . И проверка, и маскирование, а не специфичные для библиотеки (хотя, если хотите, доступен подключаемый модуль jQuery). Опять же, связывать их не главное, но это выглядело достаточно круто, чтобы кричать.

0
ответ дан 8 December 2019 в 15:59
поделиться

Я использую jquery и плагин AlphaNumeric, см. Здесь демонстрацию

2
ответ дан 8 December 2019 в 15:59
поделиться

Вы можете использовать регулярное выражение ^ \ d * $

var re = new RegExp("^\d*$");
  if ($("#someinput").val().match(re)) {
    alert("Only numbers");
  } else {
    alert("No match");
  }

^ tells the expression to start matching from the beginning of the string. 
\d is a match for numbers which is the same as [0-9] (any number from 0 to 9)
* tells to match all numbers in string.
$ tells the expression to match until the end of the string.

$ (" #someinput "). val () - это jquery, но вы можете использовать обычный javascript, например: document.somepintput.value.match (повторно).

Регулярные выражения заслуживают изучения, поскольку они могут решить многие проблемы аккуратно и лаконично. Регулярные выражения

3
ответ дан 8 December 2019 в 15:59
поделиться

вы можете использовать javascript для проверки события, которое может использовать функцию isNAN, чтобы видеть, что введенные значения являются числами или нет.

if (isNaN ($ ('input [type = text]'). Val ())

Кстати, isNaN означает Not a Number

0
ответ дан 8 December 2019 в 15:59
поделиться

Код получает входное значение, затем проверяет его от начала до конца, а {5} - это количество цифр (это необязательно).

function validzip () { txt1 = document.FormName.InputName.value; if (/ ^ \ d {5} $ / .test (txt1) == false) { / * Более простая / длинная альтернатива этому: if ((/ [0-9] / g .test (txt1) == false) || (txt1.length! = 5)) {* / alert («Недействительно»); вернуть ложь; }

        return true;
    }

0
ответ дан 8 December 2019 в 15:59
поделиться

На стороне клиента начните с (это будет восприниматься как type="text" в браузерах, которые еще не поддерживают HTML5. Затем используйте javascript (как предлагают другие) для браузеров, не поддерживающих HTML5.

Не забудьте также о валидации на стороне сервера, на случай, если у людей отключен javascript.

0
ответ дан 8 December 2019 в 15:59
поделиться

Хотя nc3b и близок к этому, использование parseInt действительно позволяет решать те задачи, которые вы, возможно, не хотели бы решать.

parseInt("133t",10)

результат: 133

Лучше сделать

if(isNaN(Number(str, 10)){
  Error;
}

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

3
ответ дан 8 December 2019 в 15:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: