2015-05-19 5 views
6

Как проверить, содержит ли текстовое поле только число?Проверьте, есть ли только текстовое поле

В то время как googling я наткнулся на это. Но мне интересно, можно ли использовать isNumeric для этой цели или если есть более простые способы проверки, имеет ли текстовое поле числовое значение.

var query = $('#myText').val(); 
if (parseFloat(query) == NaN) { 
    alert("query is a string"); 
} else { 
    alert("query is numeric"); 
} 
+1

https://api.jquery.com/jQuery.isNumeric/ –

ответ

21

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

$(document).ready(function() { 
    $('#myText').on('change', function() { 
     if (/^\d+$/.test($(this).val())) { 
      // Contain numbers only 
     } else { 
      // Contain other characters also 
     } 
    }) 
}); 

REGEX:

  1. /: Разделители из регулярных выражений
  2. ^: Начинается с
  3. \d: Любая цифра
  4. +: Один или несколько предшествующих символов
  5. $ : Конец

Regex Визуализация:

enter image description here

Demo


Если вы хотите разрешить только номера, вы можете использовать input-number и pattern

<input type="number" pattern="\d+" /> 
+3

Объяснение делает довольно хорошо;) –

+0

используя 'тип ввода = "число" pattern = "\ d +" ', как я могу разрешить только две цифры после десятичного слова, т.е.' 10.99', но не '10.9999'? – Slimshadddyyy

+0

@Slimshadddyyy '\ d + (\.\ d {1,2}) ' – Tushar

3

с использованием чистого JS регулярное выражение

var query = document.getElementById('myText').value; 
var isNumeric=query.match(/^\d+$/); 
    if(isNumeric){/*...*/}else{/*...*/} 

или с помощью управления html5

<input type="number" name="quantity" min="1" max="5"> 
2

Там вы много способов, вы можете использовать isNaN

isNaN(VALUE); 

Вы также можете использовать Regex для проверки числовых значений.

console.log(/^\d+$/.test(VALUE)); 
0

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

if($('#myText').val().match(/^\d+$/)){ 
// Your code here 
} 
1

Jquery предоставляет универсальный метод Util, чтобы справиться с этим , ручки числового/всплывания/шестигранник

$.isNumeric(value) 

Try: fiddle

Смежные вопросы