JavaScript для проверки чисел с плавающей точкой и целых чисел - PullRequest
1 голос
/ 17 февраля 2012

Я попытался сделать функцию javascript для validate integer values из текстового поля. Каков наилучший способ проверки, чтобы допустимы только значения integer and float?

Требуемая функция сценария Java для проверки номера.

Ответы [ 5 ]

6 голосов
/ 17 февраля 2012
// remove whitespaces
var input = input.replace(/\s+/g,"");

// check if the input is a valid number
if(isFinite(input) && input != ''){
  // do your thing
}

Помните, что isFinite принимает только такие значения, как «20,50», а не «20, 50», как это принято в некоторых странах.Если вам нужна такая гибкость, вам нужно выполнить дополнительную предварительную обработку строк.И с этим решением в качестве тысячи разделителей допускаются только пробелы (например, '100 000').

К сожалению, проверка пустой строки необходима, поскольку isFinite ('') возвращает true.

Вытакже может использовать эту функцию от пользователя CMS (подробное объяснение см .: Проверка десятичных чисел в JavaScript - IsNumeric () )

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}
1 голос
/ 17 июня 2015

onload =function(){ 
  var ele = document.querySelectorAll('.number-only')[0];
  ele.onkeypress = function(e) {
     if(isNaN(this.value+""+String.fromCharCode(e.charCode)))
        return false;
  }
  ele.onpaste = function(e){
     e.preventDefault();
  }
}
<input class="number-only" type=text />
1 голос
/ 11 февраля 2014

Лучшее для меня решение для числовой проверки в javascript.

function isFloat(evt) {

var charCode = (event.which) ? event.which : event.keyCode;
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
    alert('Please enter only no or float value');
    return false;
}
else {
    //if dot sign entered more than once then don't allow to enter dot sign again. 46 is the code for dot sign
    var parts = evt.srcElement.value.split('.');
    if (parts.length > 1 && charCode == 46)
      {
        return false;
      }


    return true;

}

}

Просто скопируйте и пропустите JavaScript-код и примените к текстовому полю onkeypress следующим образом.

<input type="text" onkeypress="return isFloat(event)"  />
1 голос
/ 17 февраля 2012

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

0 голосов
/ 26 августа 2013

var valid =! IsNaN (значение); Например:

!isNaN('0'); // true
!isNaN('34.56'); // true
!isNaN('.34'); // true
!isNaN('-34'); // true
!isNaN('foo'); // false
!isNaN('08'); // true

!isNaN(''), !isNaN(' '), !isNaN('\n\t') и т. Д. Все верно!

Проверка пробелов + isNaN FTW:

var valid = !/^\s*$/.test(value) && !isNaN(value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...