2015-05-19 13 views
6

Jak sprawdzić, czy pole tekstowe zawiera tylko liczby?Sprawdź, czy pole tekstowe zawiera tylko liczby.

Podczas googlowania natknąłem się na to. Ale zastanawiam się, czy można w tym celu użyć isNumeric, czy też istnieje prostszy sposób sprawdzenia, czy pole tekstowe ma wartość liczbową.

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/ –

Odpowiedz

21

Można sprawdzić, czy użytkownik wprowadził tylko cyfry używając change zdarzenia na wejściu i regex.

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

REGEX:

  1. /: Ograniczniki z regex
  2. ^: Rozpoczynające się
  3. \d: dowolna cyfra
  4. +: Jeden lub więcej z poprzednich znaków
  5. $ : Koniec

Regex Wizualizacja:

enter image description here

Demo


Jeśli chcesz zezwolić tylko liczby, można użyć input-number i pattern

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

Wyjaśnienie sprawia bardzo dobre;) –

+0

użyciem 'input type = "number" pattern = "\ d +" ", jak mogę zezwolić na dwie cyfry po przecinku, tj.' 10,99', ale nie '10.9999'? – Slimshadddyyy

+0

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

3

użyciu czystego JS wyrażenie regularne

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

lub za pomocą kontroli HTML5

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

Są tam wiele sposobów, można użyć isNaN

isNaN(VALUE); 

Można również użyć wyrażenia regularnego do sprawdzenia wartości liczbowych.

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

można dopasować wartość pola tekstowego przeciwko regresji numerycznej, aby sprawdzić, czy zawiera ona tylko czy nie liczb, jak poniżej kodu ...

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

Jquery zapewnia ogólną metodę util do obsługi tego . obsługuje numeryczne/pływak/HEX

$.isNumeric(value) 

Spróbuj: fiddle

Powiązane problemy